如何利用Xcode自带的方法生成二维码
2015-11-16 17:28
513 查看
使用前需导入
系统默认获取到的二维码图片不太清晰,可以利用下面的方法,获取指定大小的二维码图片
#import <CoreImage/CoreImage.h>
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// 1.实例化二维码滤镜
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// 2.恢复滤镜的默认属性
[filter setDefaults];
// 3.二维码信息
NSString *str = @"哎呀我去"; // 展示一串文字
// NSString *str = @"http://www.baidu.com"; // 直接打开网页
// 4.将字符串转成二进制数据
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
// 5.通过KVC设置滤镜inputMessage数据
[filter setValue:data forKey:@"inputMessage"];
// 6.获取滤镜输出的图像
CIImage *outputImage = [filter outputImage];
// 7.将CIImage转成UIImage
UIImage *image = [self createNonInterpolatedUIImageFormCIImage:outputImage withSize:200];
// 8.展示二维码
self.imageView.image = image;
}使用前需导入#import <CoreImage/CoreImage.h>
[/code]系统默认获取到的二维码图片不太清晰,可以利用下面的方法,获取指定大小的二维码图片
/** * 根据CIImage生成指定大小的UIImage * * @param image CIImage * @param size 图片宽度 */ - (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]; }
相关文章推荐
- 批处理制作二维码生成器
- jquery插件qrcode在线生成二维码
- php制作中间带自己定义图片二维码的方法
- zbar解码二维码和条形码示例
- php使用qr生成二维码的示例分享
- php实现扫描二维码根据浏览器类型访问不同下载地址
- PHP微信开发之二维码生成类
- Jquery 类网页微信二维码图块滚动效果具体实现
- 使用PHP生成二维码的方法汇总
- Perl生成纯HTML代码二维码实例
- 基于JavaScript实现生成名片、链接等二维码
- Android开发实现模仿360二维码扫描功能实例详解
- php生成二维码的几种方式整理及使用实例
- PHP基于phpqrcode生成带LOGO图像的二维码实例
- PHP下通过QRCode类库创建中间带网站LOGO的二维码
- asp.net C#生成和解析二维码的实例代码
- ASP.NET实现二维码(QRCode)的创建和读取实例
- APS.NET MVC4生成二维码简单解析
- php生成二维码时出现中文乱码的解决方法
- Python实现的二维码生成小软件