iOS-根据字符串生成二维码

生成二维码

//根据字符串生成二维码图片
- (UIImage *)createQRForString:(NSString *)qrString {
    NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding];
    // 创建filter
    CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    // 设置内容和纠错级别
    [qrFilter setValue:stringData forKey:@"inputMessage"];
    [qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"];
    // CIImage
    CIImage *qrCIImage = qrFilter.outputImage;
    
    CGRect extent = CGRectIntegral(qrCIImage.extent);
    CGFloat scale = 200;
    // 创建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:qrCIImage fromRect:extent];
    CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
    CGContextScaleCTM(bitmapRef, scale, scale);
    CGContextDrawImage(bitmapRef, extent, bitmapImage);
    // 保存bitmap到图片
    CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
    CGContextRelease(bitmapRef);
    CGImageRelease(bitmapImage);
    return [UIImage imageWithCGImage:scaledImage];
}

生成的二维码为黑色带白色背景如果需要修改背景颜色参考--->原文地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,519评论 25 709
  • 我今天讲的是完全不同的十万+,普通人追求的是一篇文章十万+的浏览量,而我们秦王会的高手追求的是10万➕的收入。 没...
    王通专栏阅读 4,208评论 0 1
  • 鼓励是一种信心,鼓励给人以新的希望和目标,鼓励是成功的重要启发。 在人生的这条征途中,不免会遇到一些挫折和困难其中...
    Messy珂阅读 1,711评论 0 1
  • 一丝风/一滴雨/一粒种子/还有一拈尘土//小苗/弯弯的/唱着风一样的歌/啍着雨一样的曲/露珠在跳荡//记得你顽皮的...
    冰凉小小手阅读 2,405评论 0 0

友情链接更多精彩内容