米小圈日记android 二维码扫描描

今天博主有一个二维码扫描和生成的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.
从iOS7开始官方集成了二维码的扫描和生成功能&此前被广泛使用的zbarsdk目前不支持64位处理器
1.扫描二维码
扫描二维码需要导入AVFoundation框架&利用摄像头识别二维码中的内容(模拟器不行)
输入(摄像头)&由会话将摄像头采集到的二维码图像转换成字符串数据&输出(数据)&由预览图层显示扫描场景
2.扫描二维码实例
@interface ViewController ()&AVCaptureMetadataOutputObjectsDelegate&
@property (nonatomic, strong) AVCaptureSession *
@property (nonatomic, strong) AVCaptureVideoPreviewLayer *previewL
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
3.二维码的生成
生成二维码的步骤:&导入CoreImage框架&通过滤镜CIFilter生成二维码
二维码的内容(传统的条形码只能放数字):纯文本,名片,URL
4.生成二维码实例
- (void)viewDidLoad {
& & [super viewDidLoad];
& & // Do any additional setup after loading the view, typically from a nib.
& & self.imgView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, [UIScreen mainScreen].bounds.size.width/2.0, [UIScreen mainScreen].bounds.size.width/2.0)];
& & [self.view addSubview:_imgView];
& & [self erweima];
-(void)erweima
& & //二维码滤镜
& & CIFilter *filter=[CIFilter filterWithName:@"CIQRCodeGenerator"];
& & //恢复滤镜的默认属性
& & [filter setDefaults];
& & //将字符串转换成NSData
& & NSData *data=[@"" dataUsingEncoding:NSUTF8StringEncoding];
& & //通过KVO设置滤镜inputmessage数据
& & [filter setValue:data forKey:@"inputMessage"];
& & //获得滤镜输出的图像
& & CIImage *outputImage=[filter outputImage];
& & //将CIImage转换成UIImage,并放大显示
& & _imgView.image=[self createNonInterpolatedUIImageFormCIImage:outputImage withSize:100.0];
& & //如果还想加上阴影,就在ImageView的Layer上使用下面代码添加阴影
& & _imgView.layer.shadowOffset=CGSizeMake(0, 0.5);//设置阴影的偏移量
& & _imgView.layer.shadowRadius=1;//设置阴影的半径
& & _imgView.layer.shadowColor=[UIColor blackColor].CGC//设置阴影的颜色为黑色
& & _imgView.layer.shadowOpacity=0.3;
//改变二维码大小
- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size {
& & CGRect extent = CGRectIntegral(image.extent);
& & CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
& & // 创建
& & size_t width = CGRectGetWidth(extent) *
& & size_t height = CGRectGetHeight(extent) *
& & CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
& & CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
& & CIContext *context = [CIContext contextWithOptions:nil];
& & CGImageRef bitmapImage = [context createCGImage:image fromRect:extent];
& & CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
& & CGContextScaleCTM(bitmapRef, scale, scale);
& & CGContextDrawImage(bitmapRef, extent, bitmapImage);
& & // 保存bitmap到图片
& & CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
& & CGContextRelease(bitmapRef);
& & CGImageRelease(bitmapImage);
& & return [UIImage imageWithCGImage:scaledImage];
阅读(...) 评论()推荐这篇日记的豆列
······更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
把视频贴到Blog或BBS
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
收藏成功,可进入查看所有收藏列表
方式1:用手机看
用爱奇艺APP或微信扫一扫,在手机上继续观看:
米小圈o北猫哥哥的日记魔法
方式2:一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:&&
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:&&
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
爸爸去哪儿2游戏 立即参与
米小圈o北猫哥哥的日记魔法
播放量数据:
你可能还想订阅他们:
{{#needAdBadge}} 广告{{/needAdBadge}}
&正在加载...
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制}

我要回帖

更多关于 android 二维码扫描 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信