Code:
#import "ViewController.h"#import<CoreImage/CoreImage.h>@implementationViewcontroller- (void) viewdidload {[Super viewdidload]; UIImage*qrimage = [Self qrcodeimageforstring:@"http://www.baidu.com"Sidelength: -]; //code ...}/** * generate two-dimensional code images based on String * * @param string String * @param sizelength qr code picture @return QR Code image*/-(UIImage *) qrcodeimageforstring: (NSString *)stringsidelength: (cgfloat) sizelength {cifilter*qrfilter = [Cifilter filterwithname:@"Ciqrcodegenerator"]; [Qrfilter SetDefaults]; [Qrfilter setvalue:[stringDatausingencoding:nsutf8stringencoding] Forkey:@"InputMessage"]; Ciimage*outputciimage =Qrfilter.outputimage; UIImage*qrimage =[self createnoninterpolateduiimageformciimage:outputciimage sidelength:sizelength]; returnqrimage;}-(UIImage *) Createnoninterpolateduiimageformciimage: (Ciimage *) Image sidelength: (cgfloat) sizelength {cgrect extent=cgrectintegral (image.extent); CGFloat Scale= MIN (Sizelength/cgrectgetwidth (extent), sizelength/Cgrectgetheight (extent)); size_t width= Cgrectgetwidth (Extent) *Scale ; size_t Height= Cgrectgetheight (Extent) *Scale ; CGCOLORSPACEREF CS=Cgcolorspacecreatedevicegray (); Cgcontextref Bitmapref= Cgbitmapcontextcreate (NULL, 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); Cgimageref Scaledimage=cgbitmapcontextcreateimage (BITMAPREF); Cgcontextrelease (BITMAPREF); Cgimagerelease (BitmapImage); return[UIImage imagewithcgimage:scaledimage];}
Ciimage and two-dimensional code image generation