zoukankan      html  css  js  c++  java
  • iOS 生成二维码 原生代码

    - (void)viewDidLoad {

        [super viewDidLoad];

        [self stringToQRcode];

    }

    -(void)stringToQRcode {

        // 1.实例化二维码滤镜

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

        

        // 2.恢复滤镜的默认属性 (因为滤镜有可能保存上一次的属性)

        [filter setDefaults];

        

        // 3.将字符串转换成NSdata

        NSString *urlString = QRCODE_HEADER(UserName);

        NSData *data  = [urlString dataUsingEncoding:NSUTF8StringEncoding];

        

        // 4.通过KVO设置滤镜, 传入data, 将来滤镜就知道要通过传入的数据生成二维码

        [filter setValue:data forKey:@"inputMessage"];

        

        // 5.生成二维码

        //输出获取的二维码

        CIImage * image = [filter outputImage];

        //CIImage转换成UIImage

        _imageview.image = [self createNonInterpolatedUIImageFormCIImage:image withSize:200];

        

    }

    //锐化图片效果

    - (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];

    }

  • 相关阅读:
    Charles的使用教程
    Sublime Text 3 无法使用package control安装插件解决办法
    sublime常用快捷键整理(未完待续)
    常用 Git 命令清单
    js判断的执行顺序
    使用CSS3 Media Queries实现网页自适应(转)
    移动前端开发之viewport的深入理解(转)
    javascript之函数节流
    String常用方法总结
    腾讯面试题1
  • 原文地址:https://www.cnblogs.com/OC888/p/6652370.html
Copyright © 2011-2022 走看看