一、二维码的生成


从iOS7开始集成了二维码的生成和读取功能
此前被广泛使用的zbarsdk目前不支持64位处理器

生成二维码的步骤:
导入CoreImage框架
通过滤镜CIFilter生成二维码

二维码的内容(传统的条形码只能放数字):
纯文本
名片
URL

// 1. 实例化二维码滤镜
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// 2. 恢复滤镜的默认属性
[filter setDefaults];// 3. 将字符串转换成NSData
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];// 4. 通过KVO设置滤镜inputMessage数据
[filter setValue:data forKey:@"inputMessage"];// 5. 获得滤镜输出的图像
CIImage *outputImage = [filter outputImage];// 6. 将CIImage转换成UIImage,并放大显示
return [UIImage imageWithCIImage:outputImage scale:20.0 orientation:UIImageOrientationUp];

二、读取二维码


读取二维码需要导入AVFoundation框架
利用摄像头识别二维码中的内容(模拟器不行)

输入(摄像头)
由会话将摄像头采集到的二维码图像转换成字符串数据
输出(数据)
由预览图层显示扫描场景

// 1. 实例化拍摄设备
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
// 2. 设置输入设备
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
// 3. 设置元数据输出
// 3.1 实例化拍摄元数据输出
AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
// 3.3 设置输出数据代理
[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
// 4. 添加拍摄会话
// 4.1 实例化拍摄会话
AVCaptureSession *session = [[AVCaptureSession alloc] init];
// 4.2 添加会话输入
[session addInput:input];
// 4.3 添加会话输出
[session addOutput:output];
// 4.3 设置输出数据类型,需要将元数据输出添加到会话后,才能指定元数据类型,否则会报错
[output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];// 5. 视频预览图层
// 5.1 实例化预览图层
AVCaptureVideoPreviewLayer *preview = [AVCaptureVideoPreviewLayer layerWithSession:_session];
preview.videoGravity = AVLayerVideoGravityResizeAspectFill;
preview.frame = self.view.bounds;
// 5.2 将图层插入当前视图
[self.view.layer insertSublayer:preview atIndex:100];
self.previewLayer = preview;// 6. 启动会话
[_session startRunning];

转载于:https://www.cnblogs.com/chglog/p/4872624.html

iOS开发——高级篇——二维码的生产和读取相关推荐

  1. iOS开发-定制多样式二维码

    iOS开发-定制多样式二维码   二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...

  2. iOS开发实用技术之二维码

    一. 二维码生成和扫描 1. 二维码概念 二维码, 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的; 2. 二维码的使用场景 ● 信息获取(名片.地图.WI ...

  3. iOS开发 - 微信扫描二维码登录网页的原理

    转自: http://daily.zhihu.com/story/3783725 我个人开发过程一般是和产品说,『你们提业务要求.交互方式.性能要求等就好,技术方案我们会综合开发时间.系统架构等因素考 ...

  4. IOS抖音短视频APP开发关于扫描二维码,并根据文本生成二维码

    IOS抖音短视频APP开发关于扫描二维码,(根据光线强弱显示隐藏闪光灯)并根据文本生成二维码. WeakSelf; //IOS抖音短视频APP开发构建扫描样式视图 _scanView = [[WSLS ...

  5. iOS开发 - 二维码的生成与读取

    二维码的生成 从iOS7開始集成了二维码的生成和读取功能 此前被广泛使用的zbarsdk眼下不支持64位处理器 生成二维码的步骤: 导入CoreImage框架 通过滤镜CIFilter生成二维码 二维 ...

  6. 抖音短视频APP开发如何生成二维码?

    授权转载自云豹网络科技的CSDN博客 原文链接:https://blog.csdn.net/yb1314111/article/details/101283985 IOS抖音短视频APP开发关于扫描二 ...

  7. flutter开发实战-flutter二维码条形码扫一扫功能实现

    flutter开发实战-flutter二维码条形码扫一扫功能实现 flutter开发实战-flutter二维码扫一扫功能实现,要使用到摄像头的原生的功能,使用的是插件:scan 效果图如下 一.扫一扫 ...

  8. 微信小程序 - 二维码数据解析,如何扫码进入开发版测试二维码数据

    1.生成二维码 在小程序开发中,经常需要用到通过分享小程序二维码,进行扫码进入小程序. 官方文档 生成小程序二维码接口,这个生成接口可以放置服务器使用. page:是扫码之后需要打开的小程序页面 sc ...

  9. 微信网页开发-长按二维码无法识别问题解决

    微信网页开发-长按二维码无法识别问题解决 参考文章: (1)微信网页开发-长按二维码无法识别问题解决 (2)https://www.cnblogs.com/Tylerrrkd/p/9153949.ht ...

最新文章

  1. RecSys 2019最佳论文:基于深度学习的推荐系统是否真的优于传统经典方法?
  2. 实现WebMvcConfigurer接口扩展Spring MVC的功能
  3. CTF——MISC——zip伪加密总结
  4. linux如何设置账号全民,linux基本练习:用户和组管理的相关练习
  5. Educational Codeforces Round 25 C. Multi-judge Solving
  6. CF954I Yet Another String Matching Problem 并查集、FFT
  7. webapi 初识 net
  8. 美国红帽软件公司是做什么的
  9. WEB前端开发规范文档+CSS命名规范
  10. jquery设置元素的readonly和disabled
  11. ALK/NH2/COOH/NHS/N3/hydrazide/maleimide/Tetrazine/DBCO/寡聚物等基团修饰BODIPY630/650氟硼荧
  12. Android 自定义 View 实现转盘功能
  13. 大厂团队协作工具推荐
  14. appcan与java_AppCan试用体验
  15. 计算机组成dr是什么意思,体检中DR诊断是什么意思
  16. 使用32驱动1602液晶屏
  17. XP的故障恢复控制台
  18. VM-CentOS7.6-启动时assuming drive cache:write through
  19. CUDA out of memory. Tried to allocate 150.00 MiB (GPU 0; 4.00 GiB total capacity; 2.24 GiB already a
  20. C++ QT调用python脚本并将软件打包发布

热门文章

  1. android刷新时的圆形动画_Android动画篇(一):圆形进度条CircleProgressBar
  2. 安装ipython失败 in error catcher_疯狂的Python:零基础小白入门帖子详情 - 网易云课堂...
  3. 方法的返回值类型是object_JavaScript中如何判断类型
  4. angular安装记录
  5. 【python之路】数据库2
  6. python爬虫:两种方法模拟登录博客园
  7. WordPress的RSS订阅优化
  8. redis springmvc mysql_redis和mysql怎么一起在springmvc里面
  9. mc服务器word文件夹,我的世界服务器创建:MC个人服务器创建流程
  10. linux备份mysql部分表数据,linux mysql 数据按表名称备份