IOS CIFilter QRCode Generate

来源:互联网 发布:淘宝关键词搜索软件 编辑:程序博客网 时间:2024/04/29 20:08

如果需要支援 ios7 以下的話可以考慮使用這套

iOS-QR-Code-Encoder

使用上個人認為也相當容易~

以下代碼為在 UIViewController 中放置一個 320*320 的 UIImageView

並將 QRCode 呈現在 UIImageView 中

MainViewController.m
- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view.        UIImageView *imageview_qr = [[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 320, 320)];    [self.view addSubview:imageview_qr];    [imageview_qr release];    //呈現 QRCode 的 UIImageView        NSString *str_qr = @"Hello QRcode Generator";    NSData *data_qr = [str_qr dataUsingEncoding:NSUTF8StringEncoding];    //要轉換為 QRCode 的內容    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];    [filter setValue:data_qr forKey:@"inputMessage"];    //關於使用的 Name 請參考 IOS Developer Library 的 Core Image Filter Reference        UIImage *image_qr = [UIImage imageWithCIImage:[filter outputImage]];    //讀出 CIFilter 的 outputImage        UIGraphicsBeginImageContext(imageview_qr.frame.size);    CGContextRef cgcontext = UIGraphicsGetCurrentContext();    CGContextSetInterpolationQuality(cgcontext, kCGInterpolationNone);    [image_qr drawInRect:CGRectMake(0, 0, imageview_qr.frame.size.width, imageview_qr.frame.size.height)];    UIImage *image_out = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    //將 image_qr 縮放成符合 UIImageView 的大小        [imageview_qr setImage:image_out];}
Should look like ~

iOS Simulator Screen shot 2014.4.10 上午11.03.43.png

0 0
原创粉丝点击