美文网首页OC_UIKit
通过关键字生成二维码

通过关键字生成二维码

作者: 忻凯同学 | 来源:发表于2017-06-23 11:30 被阅读3次

    /**

        通过关键字生成二维码

        @param keyword keyword

        @param size 生成二维码大小

        @return UIImage

    */

    - (UIImage *)encodeQRImageWithKeyword:(NSString *)keyword size:(CGSize)size {

              UIImage *codeImage = nil;

              NSData *stringData = [keyword dataUsingEncoding:NSUTF8StringEncoding];

              //生成

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

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

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

              UIColor *onColor = [UIColor blackColor];

              UIColor *offColor = [UIColor whiteColor];

              //上色

              CIFilter *colorFilter = [CIFilter filterWithName:@"CIFalseColor" keysAndValues:@"inputImage", qrFilter.outputImage, @"inputColor0", [CIColor colorWithCGColor:onColor.CGColor], @"inputColor1", [CIColor colorWithCGColor:offColor.CGColor], nil];

              CIImage *qrImage = colorFilter.outputImage;

              CGImageRef cgImage = [[CIContext contextWithOptions:nil] createCGImage:qrImage fromRect:qrImage.extent];

              UIGraphicsBeginImageContext(size);

              CGContextRef context = UIGraphicsGetCurrentContext();

              CGContextSetInterpolationQuality(context, kCGInterpolationNone);

              CGContextScaleCTM(context, 1.0, -1.0);

              CGContextDrawImage(context, CGContextGetClipBoundingBox(context), cgImage);

              codeImage = UIGraphicsGetImageFromCurrentImageContext();

              UIGraphicsEndImageContext();

              CGImageRelease(cgImage);

              return codeImage;

    }

    相关文章

      网友评论

        本文标题:通过关键字生成二维码

        本文链接:https://www.haomeiwen.com/subject/qhqccxtx.html