博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios创建二维码
阅读量:6424 次
发布时间:2019-06-23

本文共 1819 字,大约阅读时间需要 6 分钟。

#import "LCTwoCodeImage.h"

 

@implementation LCTwoCodeImage

 

 

+(UIImage *) GotoCreatMyTwoCode :(NSString *) string {

    //通过传入的字符串来创建二维码初始图层渲染

    CIImage * firstImage = [self creatCIImageFromString:string];

    //通过 CIImage 来生成二维码

    UIImage * qrCode = [self createNonInterpolatedUIImageFormCIImage:firstImage withSize:250.0f];

    

    return qrCode;

}

 

 

+(UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size {

    CGRect extent = CGRectIntegral(image.extent);

    CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));

    // create a bitmap image that we'll draw into a bitmap context at the desired size;

    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);

    // Create an image with the contents of our bitmap

    CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);

    // Cleanup

    CGContextRelease(bitmapRef);

    CGImageRelease(bitmapImage);

    return [UIImage imageWithCGImage:scaledImage];

}

 

+(CIImage *)creatCIImageFromString:(NSString *) string {

    NSData * stringData = [string dataUsingEncoding:NSUTF8StringEncoding];

    //添加图层

    CIFilter * qrFiler = [CIFilter filterWithName:@"CIQRCodeGenerator"];

    [qrFiler setValue:stringData forKey:@"inputMessage"];

    [qrFiler setValue:@"M" forKey:@"inputCorrectionLevel"];

    return [qrFiler outputImage];

}

 

 

 

 

@end

转载于:https://www.cnblogs.com/supersr/p/4969510.html

你可能感兴趣的文章
HTML标记语言——表格的基本结构
查看>>
数据中心机房UPS供电系统的全新安全及节能技术设计
查看>>
windows 7 的防火墙设置
查看>>
11.python并发入门(part10 多进程之间实现通信,以及进程之间的数据共享)
查看>>
金蝶KIS专业版“登录时出现问题,请重新输入”终极解决全过程
查看>>
UDP15000端口引起的路由器丢包
查看>>
linux如何使用find命令查找文件
查看>>
LNMP_nginx安装_3
查看>>
apache代理多个tomcat实例
查看>>
Remository3.52简体中文语言包
查看>>
DSL技术分析
查看>>
2015年最新数据库流行排行榜
查看>>
有趣的JavaScript数组
查看>>
3.3. 生成目录深度
查看>>
Linux 动态链接库(.so)的使用
查看>>
春风十里,不如淘宝遇见你——浸润深度学习的淘宝智能搜索
查看>>
WCF开发框架形成之旅---WCF的几种寄宿方式
查看>>
学好数学可以救命
查看>>
java编程之:生成rsa密钥
查看>>
★如何证明自己不是精神病?
查看>>