1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/reesun1130-SYQRCodeDemo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.03.2025 20:55 b23c1d3

Пример работы с QR-кодами

SYQRCodeDemo: Аналог сканирования QR-кодов в WeChat

Последнее

  • Реализация на Swift: SYQRCodeDemoSwift
  • Устранение ошибок, оптимизация реализации и повышение удобства использования (добавлен эффект анимации при открытии, аналогичный WeChat)
  • Изменение проверки разрешений камеры
  • Добавление новых классов, разделение представлений
  • При использовании просто переместите папку SYQRCodeViewController в проект
  • Для систем iOS 7 и выше: если требуется только простое сканирование QR-кодов, можно удалить библиотеку ZXingObjC

Новое

  • Поддержка чтения QR-кодов из изображений;

    Для поддержки iOS 7 и выше потребуется зависимость от библиотеки ZXingObjC

    Для iOS 8.0 и выше можно использовать встроенные средства системы.

  • Поддержка включения фонарика

  • Поддержка генерации изображений QR-кодов

Введение: основано на SYQRCodeDemo

intro png

Пример: Для использования достаточно перетянуть SYQRCodeViewController в проект

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/reesun1130-SYQRCodeDemo.git
git@api.gitlife.ru:oschina-mirror/reesun1130-SYQRCodeDemo.git
oschina-mirror
reesun1130-SYQRCodeDemo
reesun1130-SYQRCodeDemo
master