SYQRCodeDemo: Аналог сканирования QR-кодов в WeChat
Поддержка чтения QR-кодов из изображений;
Для поддержки iOS 7 и выше потребуется зависимость от библиотеки ZXingObjC
Для iOS 8.0 и выше можно использовать встроенные средства системы.
Поддержка включения фонарика
Поддержка генерации изображений QR-кодов
NSData *stringData = [text dataUsingEncoding:NSUTF8StringEncoding];
// Генерация
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[qrFilter setValue:stringData forKey:@"inputMessage"];
[qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"];
UIColor *onColor = [UIColor whiteColor];
UIColor *offColor = [UIColor darkGrayColor];
``````markdown
// Окраска
CIFilter *colorFilter = [CIFilter filterWithName:@"CIFalseColor"
keysAndValues:
@"inputImage", qrFilter.outputImage,
@"inputColor0", [CIColor colorWithCGColor:onColor.CGColor],
@"inputColor1", [CIColor colorWithCGColor:offColor.CGColor],
nil];
В данном случае нет необходимости менять код, поскольку все ключевые слова и значения уже на английском языке и являются частью кода.```markdown CIImage *qrImage = colorFilter.outputImage;
// Отрисовка CGSize size = CGSizeMake(width, width); CGImageRef cgImage = [[CIContext contextWithOptions:nil] createCGImage:qrImage fromRect:qrImage.extent]; UIGraphicsBeginImageContext(size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetInterpolationQuality(context, kCGInterpolationNone); CGContextScaleCTM(context, 1.0, -1.0); CGContextDrawImage(context, CGContextGetClipBoundingBox(context), cgImage); _codeImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();
CGImageRelease(cgImage);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )