• 好莱坞环球影城“功夫熊猫”主题剧院开放 2019-09-23
  • TapTap恢复下载服务 整改三个月带来内忧外患 2019-09-23
  • 经营者要想“我心换你心”,就要未雨绸缪,让不诚信的诱惑少一点,如此才能在市场中生存下来。反过来说,承担不起亏损就关门歇业,是否也是一种不诚信呢? 2019-09-14
  • 上海市陆家嘴:打造社区多元治理“共同体” 2019-09-14
  • 2017最具体育活力城市排行榜 2019-09-14
  • 李克勤献唱央视“世界杯主题歌” 2018国语专辑筹备中李克勤 世界杯 2019-09-08
  • 回复@看着就想笑:难道公有制社会主义就不能生存发展吗?事实上公有制会生存发展的更好! 2019-09-03
  • 陵川县全力推进乡村振兴战略 2019-09-01
  • 周国平:男女之爱已经很强烈了,但亲子之爱更强烈 2019-09-01
  • 出租广州市荔湾区芳村大道东169号 2019-08-29
  • (原创)取消“份子钱”是出租车改革必须迈出的一步 2019-08-21
  • Facebook公关掌门离职 是应对隐私丑闻干将 2019-08-20
  • 你这纯粹是胡说八道!农民的宅基地,需要交钱才能使用吗?你敢推行这样的政策吗?你也只敢推行对工人的住宅地,要交钱才能使用!这样合理吗?那些交不起房钱的人,难道应该 2019-08-13
  • 西部网(陕西新闻网)硬科技频道 2019-08-13
  • 新华时评:成果不易,更需诚意与信任呵护 2019-08-09
  • 彩票平码计算方法:ios原生二维码扫描与生成的实现教程

    平码三中山论坛 www.mslzq.tw 之前都是第三方的二维码,操作简单pod集成,美滋滋。随着公司项目越来越恶心到大,还是自己撸一个比较实在。
    demo的主要功能扫描二维码和生成二维码。

    扫描相关类

    二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话。我们需要用到一下几个类:

    • AVCaptureSession 会话对象。此类作为硬件设备输入输出信息的桥梁,承担实时获取设备数据的责任
    • AVCaptureDeviceInput 设备输入类。这个类用来表示输入数据的硬件设备,配置抽象设备的port
    • AVCaptureMetadataOutput 输出类。这个支持二维码、条形码等图像数据的识别
    • AVCaptureVideoPreviewLayer 图层类。用来快速呈现摄像头获取的原始数据

    二维码扫描功能的实现步骤是创建好会话对象,用来获取从硬件设备输入的数据,并实时显示在界面上。在扫描到相应图像数据的时候,通过AVCaptureVideoPreviewLayer类型进行返回

    扫描二维码

    1.首先倒入框架

    #import 

    2.遵守协议

    3.主要用到的属性设置

    //捕获设备,默认后置摄像头
    @property (strong, nonatomic) AVCaptureDevice * device;
    
    //输入设备
    @property (strong, nonatomic) AVCaptureDeviceInput * input;
    
    //输出设备,需要指定他的输出类型及扫描范围
    @property (strong, nonatomic) AVCaptureMetadataOutput * output;
    
    //AVFoundation框架捕获类的中心枢纽,协调输入输出设备以获得数据
    @property (strong, nonatomic) AVCaptureSession * session;
    
    //展示捕获图像的图层,是CALayer的子类
    @property (strong, nonatomic) AVCaptureVideoPreviewLayer * preview;

    4.拉起本地相册二维码

    - (void)chooseButtonClick
    {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
    //关闭扫描
    [self stopScan];
    
    //1 弹出系统相册
    UIImagePickerController *pickVC = [[UIImagePickerController alloc]init];
    //2 设置照片来源
    /**
    UIImagePickerControllerSourceTypePhotoLibrary,相册
    UIImagePickerControllerSourceTypeCamera,相机
    UIImagePickerControllerSourceTypeSavedPhotosAlbum,照片库
    */
    
    pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    //3 设置代理
    pickVC.delegate = self;
    //4.转场动画
    self.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:pickVC animated:YES completion:nil];
    }
    else
    {
    [self showAlertViewWithTitle:@"打开失败" withMessage:@"相册打开失败。设备不支持访问相册,请在设置->隐私->照片中进行设置!"];
    }
    
    }

    生成二维码

    1.二维码的生成

    /**
    * 2.生成CIFilter(滤镜)对象
    */
    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    
    /**
    * 3.恢复滤镜默认设置
    */
    [filter setDefaults];
    
    /**
    * 4.设置数据(通过滤镜对象的KVC)
    */
    //存放的信息
    NSString *info = @"hahahahhahahaha";
    //把信息转化为NSData
    NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
    //滤镜对象kvc存值
    [filter setValue:infoData forKeyPath:@"inputMessage"];
    
    /**
    * 5.生成二维码
    */
    CIImage *outImage = [filter outputImage];
    
    //imageView.image = [UIImage imageWithCIImage:outImage];//不处理图片模糊,故而调用下面的信息
    
    self.codeImage.image = [outImage createNonInterpolatedWithSize:150];

    2.保存到本地相册

    UIGraphicsBeginImageContext(self.view.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    //获取图片
    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    //关闭上下文
    UIGraphicsEndImageContext();
    completion(image);
    
    /**
    * 将图片保存到本地相册
    */
    UIImageWriteToSavedPhotosAlbum(image, self , @selector(saveImage:didFinishSavingWithError:contextInfo:), nil);//保存图片到照片库

    主要代码贴出来,感兴趣可以去gibHub地址:https://github.com/MrBMask 这里瞅瞅呦

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对CAD之家的支持。

    为您推荐

    发表评论

    联系我们

    联系我们

    在线咨询: QQ交谈

    地址:中国·贵州·贵阳 友情链接QQ:1034559333 本站QQ群:123733639
    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部

    关于本站 || 版权声明 || 免责条款 || 隐私条款 || 平码三中山论坛 || ||

    Copyright??2018 平码三中山论坛 All Rights Reserved·黔ICP备15000265号-2

  • 好莱坞环球影城“功夫熊猫”主题剧院开放 2019-09-23
  • TapTap恢复下载服务 整改三个月带来内忧外患 2019-09-23
  • 经营者要想“我心换你心”,就要未雨绸缪,让不诚信的诱惑少一点,如此才能在市场中生存下来。反过来说,承担不起亏损就关门歇业,是否也是一种不诚信呢? 2019-09-14
  • 上海市陆家嘴:打造社区多元治理“共同体” 2019-09-14
  • 2017最具体育活力城市排行榜 2019-09-14
  • 李克勤献唱央视“世界杯主题歌” 2018国语专辑筹备中李克勤 世界杯 2019-09-08
  • 回复@看着就想笑:难道公有制社会主义就不能生存发展吗?事实上公有制会生存发展的更好! 2019-09-03
  • 陵川县全力推进乡村振兴战略 2019-09-01
  • 周国平:男女之爱已经很强烈了,但亲子之爱更强烈 2019-09-01
  • 出租广州市荔湾区芳村大道东169号 2019-08-29
  • (原创)取消“份子钱”是出租车改革必须迈出的一步 2019-08-21
  • Facebook公关掌门离职 是应对隐私丑闻干将 2019-08-20
  • 你这纯粹是胡说八道!农民的宅基地,需要交钱才能使用吗?你敢推行这样的政策吗?你也只敢推行对工人的住宅地,要交钱才能使用!这样合理吗?那些交不起房钱的人,难道应该 2019-08-13
  • 西部网(陕西新闻网)硬科技频道 2019-08-13
  • 新华时评:成果不易,更需诚意与信任呵护 2019-08-09
  • 棋牌游戏网站 甘肃省3d开奖 快乐飞艇官网 2018足彩历史开奖结果 赛车pk软件 黄金鱼场 国际麻将游戏下载 特区彩票论坛海南开奖结果 河南福彩快三开奖图 河内5分彩官网