长按图片识别图中二维码:

 // 长按图片识别二维码 

     UILongPressGestureRecognizer *QrCodeTap = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(QrCodeClick:)];

     [self.view addGestureRecognizer:QrCodeTap];

 - (void)QrCodeClick:(UILongPressGestureRecognizer *)pressSender {

     if (pressSender.state != UIGestureRecognizerStateBegan) {

         return;//长按手势只会响应一次

     }

 //    MJPhoto *photo = _photos[_currentPhotoIndex];

     //截图 再读取

     //第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了,获取当前屏幕分辨率[UIScreen mainScreen].scale

     UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 2.2);

     CGContextRef context = UIGraphicsGetCurrentContext();

     [self.view.layer renderInContext:context];

     UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

     UIGraphicsEndImageContext();

     CIImage *ciImage = [[CIImage alloc] initWithCGImage:image.CGImage options:nil];

     CIContext *ciContext = [CIContext contextWithOptions:@{kCIContextUseSoftwareRenderer : @(YES)}]; // 软件渲染

     CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:ciContext options:@{CIDetectorAccuracy : CIDetectorAccuracyHigh}];// 二维码识别

     NSArray *features = [detector featuresInImage:ciImage];

     if (features.count) {

         for (CIQRCodeFeature *feature in features) {

             NSLog(@"qrCodeUrl = %@",feature.messageString); // 打印二维码中的信息

             qrCodeUrl = feature.messageString;

         }

         // 初始化弹框 第一个参数是设置距离底部的边距

         alertview = [[RomAlertView alloc] initWithMainAlertViewBottomInset: Title:nil detailText:nil cancelTitle:nil otherTitles:[NSMutableArray arrayWithObjects:@"保存图片",@"识别图中二维码",nil]];

         alertview.tag = ;

         // 设置弹框的样式

         alertview.RomMode = RomAlertViewModeBottomTableView;

         // 设置弹框从什么位置进入 当然也可以设置什么位置退出

         [alertview setEnterMode:RomAlertEnterModeBottom];

         // 设置代理

         [alertview setDelegate:self];

         // 显示 必须调用 和系统一样

         [alertview show];

     } else {

         NSLog(@"图片中没有二维码");

     }

 }

 #pragma mark -- RomAlertViewDelegate 弹框识别图中二维码

 - (void)alertview:(RomAlertView *)alertview didSelectRowAtIndexPath:(NSIndexPath *)indexPath

 {

     if (alertview.tag == ) {

         if ([alertview.otherTitles[indexPath.row]  isEqualToString:@"保存图片"]) {

             NSLog(@"保存图片");

             [self saveButtonPressed];

         }else if ([alertview.otherTitles[indexPath.row] isEqualToString:@"识别图中二维码"]){

             NSLog(@"识别图中二维码");

             // 隐藏

             [alertview hide];

             [self leftBackButtonPressed];

             AppDelegate *delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];

             if([delegate.window.rootViewController isKindOfClass:[UITabBarController class]]){

                 UITabBarController *tabBarController = (UITabBarController *)delegate.window.rootViewController;

                 UINavigationController *navigationController = [tabBarController selectedViewController];

                 UIViewController *vc = navigationController.topViewController;

                 //对结果进行处理跳转网页

                 ADWebViewViewController *controller = [[ADWebViewViewController alloc] init];

                 controller.m_url = qrCodeUrl;

                 controller.hidesBottomBarWhenPushed = YES;

                 [vc.navigationController pushViewController:controller animated:YES];

             }

         }

     }

 }

iOS - 长按图片识别图中二维码的更多相关文章

  1. Vue实现长按图片识别图中二维码

    Vue实现长按图片识别图中二维码 思路:要想实现可以识别图片中的二维码,那必定是要将这张图进行上传操作,上传则需要file对象格式.不管是在H5还是APP中,展示的图片都是通过url的方式展示在img ...

  2. C#识别图中二维码

    1.在NuGet中添加 ZXing.Net 2.实例代码 /// <summary> /// 识别图中二维码 /// </summary> /// <param name ...

  3. android选取系统相册图片后,识别图中二维码

    项目中添加设备操作需要扫描二维码,考虑到多种扫码方式,也添加直接识别二维码图片的操作. 首先跳转系统相册选取图片 Intent intent = new Intent(Intent.ACTION_PI ...

  4. Android 长按识别图中二维码 zxing

    #基于 Zxing, 初学Android 代码质量不高 //长按,通过zxing读取图片,判断是否有二维码 bigImage.setOnLongClickListener(new View.OnLon ...

  5. 【转】Delphi+Halcon实战一:两行代码识别QR二维码

    Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...

  6. zxing 如何识别反转二维码

    说起二维码扫描,估计很多人用的是 zxing 吧. 然而 zxing 虽然好用,但是却有一些坑. 这边分析一下自己实际项目遇到的一个坑. 什么坑呢? 下面举个栗子你就懂了. 这边生成二维码使用的是网络 ...

  7. 二维码合成,将苹果和安卓(ios和android)合成一个二维码,让用户扫描一个二维码就可以分别下载苹果和安卓的应用

    因为公司推广的原因,没有合适的将苹果和安卓(ios和android)合成一个二维码的工具. 因为这个不难,主要是根据浏览器的UA进行判断,所以就自己开发了一个网站 网站名称叫:好推二维码  https ...

  8. php 合并图片 (将活动背景图片和动态二维码图片合成一张图片)

    <?php //案例一:将活动背景图片和动态二维码图片合成一张图片 //图片一 $path_1 = './background.png'; //图片二 $path_2 = './FU0851_2 ...

  9. iOS中二维码的生成与使用(入门篇)

    这里简单总结一下关于二维码的扫描与生成,用的是原生的AVFoundation框架,其实这个框架目前功能还是够用的,不过这里推荐一个二维码扫描的第三方(face++),网址就不贴了,直接度娘就OK,里面 ...

随机推荐

  1. git绑定两个远程仓库

    最近在做公司项目,之前公司项目统一托管在codding 码云,最近我想把项目与自己的gitlab私人仓库再连接一下,作为自己作品收录的地方,这里总结一下用到的git命令及问题. 1.首先, 找到当前已 ...

  2. oracle18c linux x86-64 install 杂记

    132 yum install libstdc++-devel 133 yum install compat-libstdc++-33 135 yum install compat-libcap1 1 ...

  3. Android ScrollView 和ListView 一起使用的问题汇总

    1.ScrollView 嵌套 ListView  ,touch事件的截获问题. 参考 http://www.cnblogs.com/lqminn/archive/2013/03/02/2940194 ...

  4. Qt OpenGL裁剪测试

    剪裁测试(Scissor Test)用于限制绘制区域. 我们可以指定一个矩形的剪裁窗口,当启用剪裁测试后,只有在这个窗口之内的像素才能被绘制,其它像素则会被丢弃. 换句话说,无论怎么绘制,剪裁窗口以外 ...

  5. 源码分析八(org.springframework.util包之StringUtils类))

    一:spring框架util包中的StringUtils类主要是处理关于字符串 的功能方法,下面直接结合代码分析: //判断字符串是否为空,如果为nul或者""则返回true,否则 ...

  6. 扫盲 -- What's MOOC ?

    FAQ 1. MOOC是什么? 2. xMOOC又是什么? 它与之前在中国大陆网络上风靡一时的国外大学"公开课"有什么区别?3. xMOOC什么时候, 怎样出现的? 4. 有哪些网 ...

  7. Dubbo -- 系统学习 笔记 -- 示例 -- 分组聚合

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 分组聚合 按组合并返回结果,比如菜单服务,接口一样,但有多种实现,用group区分 ...

  8. Docker-创建和分享应用(3)

          Dockerfile定义容器内环境中发生的事情.对网络接口和磁盘驱动器等资源的访问在此环境中进行虚拟化,该环境与系统的其他部分隔离,因此您需要将端口映射到外部世界,并具体说明要“复制”哪些 ...

  9. 【AI】Win10-Tensorflow

    一.安装 第一步:先安装anaconda3第二步:pip install --upgrade --ignore-installed tensorflow或者:pip install tensorflo ...

  10. PHP代码审计笔记--变量覆盖漏洞

    变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击. 经常导致变量覆盖漏洞场景有:$$,extract()函数,parse_str()函数, ...