zoukankan      html  css  js  c++  java
  • 根据字符串链接生成二维码

    #pragma mark - InterpolatedUIImage=因为生成的二维码是一个CIImage,我们直接转换成UIImage的话大小不好控制,所以使用下面方法返回需要大小的UIImage
    
    - (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size {
    
        CGRect extent = CGRectIntegral(image.extent);
    
        CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
    
        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);
    
        CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
    
        CGContextRelease(bitmapRef);
    
        CGImageRelease(bitmapImage);
    
        return [UIImage imageWithCGImage:scaledImage];
    
    }
    #pragma mark - QRCodeGenerator--首先是二维码的生成,使用CIFilter很简单,直接传入生成二维码的字符串即可
    
     
    
    - (CIImage *)createQRForString:(NSString *)qrString {
    
        NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding];
    
        CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    
        [qrFilter setValue:stringData forKey:@"inputMessage"];
    
        [qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"];
    
        return qrFilter.outputImage;
    
    }

    调用:

     UIImage *boundImg = [self createNonInterpolatedUIImageFormCIImage:[self createQRForString:@"http://baidu.com"] withSize:250.0f];

           

  • 相关阅读:
    为 HTTP/2 头压缩专门设计的 HPACK
    HTTP2 帧基础知识以及Header、CONTINUATION、DATA帧相关资料:
    扩充巴科斯-瑙尔范式 ABNF简介
    我Win下常用工具清单
    gRPC版本的 Google APIs
    gRPC 的route_guide例子
    proto3 笔记1
    编译gRPC Go版本使用的 ProtoBuffer 文件
    新浪校园招聘2013.10.30浙大玉泉4教301笔试的前端妹纸,像雾像雨又像风
    Android下Notification,样式style,主题theme的功能实现
  • 原文地址:https://www.cnblogs.com/fengmin/p/5548415.html
Copyright © 2011-2022 走看看