iOS开发---原生高清二维码生成
来源:互联网 发布:谷歌tts语音数据 编辑:程序博客网 时间:2024/05/01 09:59
1.导入#import <CoreImage/CoreImage.h>
2.创建一个@property (nonatomic, strong)UIImageView *imageView;
3.具体代码实现
`- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imageView = [[UIImageView alloc] init];imageView.backgroundColor = [UIColor whiteColor];[self.view addSubview:imageView];[imageView mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(150, 150)); make.center.mas_equalTo(self.view);}]; // 实例化二维码滤镜CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];// 恢复滤镜的默认属性[filter setDefaults];NSString *phoneNum =[YNUser currentUser].sa_mobile;// 将字符串转换成NSdataNSData *data = [phoneNum dataUsingEncoding:NSUTF8StringEncoding];// 通过KVO设置滤镜, 传入data, 将来滤镜就知道要通过传入的数据生成二维码[filter setValue:data forKey:@"inputMessage"];// 设置 filter 容错等级[filter setValue:@"M" forKey:@"inputCorrectionLevel"];// 生成二维码CIImage *outputImage = [filter outputImage];imageView.image=[self createNonInterpolatedUIImageFormCIImage:outputImage withSize:200.0];
}
// 根据CIImage生成指定大小的UIImage
- (UIImage )createNonInterpolatedUIImageFormCIImage:(CIImage )image withSize:(CGFloat) size {
CGRect extent = CGRectIntegral(image.extent);CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));// 创建bitmap;size_t width = CGRectGetWidth(extent) * scale;size_t height = CGRectGetHeight(extent) * scale;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];
}
`
4.最终实现的效果如下:
0 0
- iOS开发---原生高清二维码生成
- iOS开发之原生二维码生成
- iOS生成原生二维码
- iOS开发--生成二维码及扫描二维码(原生)
- iOS 二维码生成/原生库
- iOS开发-原生二维码的扫描和生成
- iOS开发-原生二维码的扫描和生成
- iOS原生二维码扫描&libqrencode生成二维码
- iOS开发------原生的二维码
- iOS 高清二维码的生成,并保存到本地相册
- IOS开发 生成二维码
- iOS开发---生成二维码
- iOS开发生成二维码
- ios 原生二维码的扫描和生成
- iOS原生API生成二维码(CIFilter)
- 【iOS】CoreImage原生二维码生成(一)
- iOS 原生二维码扫描、生成、识别
- 教你三行代码生成高清二维码(Swift1.1)
- Linux帧缓冲数据结构和驱动结构总结
- 团队组建
- jquery easyui datagrid 加载成功,选中某一行
- 数据库源数据搬家
- ubuntu学习网址
- iOS开发---原生高清二维码生成
- iOS开发优秀博客记录
- python写一个爬虫(1)
- nginx+tomcat7+session复制 负载均衡
- xcode 终端找不到路径换路径方法
- java版斗地主,一副牌实现发牌过程
- 基于Struts2的供求信息网设计(三)
- TC SRM 682 DNASequence
- iOS好的博客