根据链接生成二维码

http://www.cnblogs.com/gchlcc/p/5585482.html

导入<CoreImage/CoreImage.h>

-(void)creatQRcode:(NSString *)url

{

// 1.创建过滤器 -- 苹果没有将这个字符封装成常量

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

// 2.过滤器恢复默认设置

[filter setDefaults];

// 3.给过滤器添加数据(正则表达式/帐号和密码) -- 通过KVC设置过滤器,只能设置NSData类型

NSData *data = [url dataUsingEncoding:NSUTF8StringEncoding];

[filter setValue:data forKeyPath:@"inputMessage"];

// 4.获取输出的二维码

CIImage *outputImage = [filter outputImage];

//    self.tgImageView.image=[UIImage imageWithCIImage:outputImage];

UIImage *image=[self createNonInterpolatedUIImageFormCIImage:outputImage withSize:100];

self.tgImageView.image=image;

}

//处理二维码

- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size

{

CGRect extent = CGRectIntegral(image.extent);

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

// 1.创建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);

// 2.保存bitmap到图片

CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);

CGContextRelease(bitmapRef);

CGImageRelease(bitmapImage);

return [UIImage imageWithCGImage:scaledImage];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先先了解一下二维码的容错(例如微信的二维码中间附带头像图片): 二维码都有一定的纠错,就是有部分污损或者破损都没...
    零零贰叁阅读 1,225评论 0 0
  • 自定义二维码,就是指给系统二维码添加一些图片(前景或者背景图片), 或者改变下颜色 自定义二维码实质是通过Quar...
    翻这个墙阅读 2,130评论 0 0
  • Core Image是一个强大的框架,它能够让你轻松地对图像进行过滤。你能够通过修改图像的饱和度、色调或曝光率来获...
    木易林1阅读 1,161评论 0 1
  • 现在大多数的App都使用到二维码,所以就需要我们在App开发的时候,加入这个功能。其实苹果官方也提供了这样的...
    七秒记忆的鱼儿阅读 1,925评论 2 6
  • UITableViewCell分割线的自定义一:将系统隐藏,自己自定义一条;二:在cell中重写// 重写底部分割...
    CALayer_Sai阅读 224评论 0 0