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

           

  • 相关阅读:
    HihoCoder1371
    Intern Day23
    腾讯移动客户端开发暑期实习一面笔试
    C++
    朱丹为什么是文艺青年
    金数据一个不错的调查平台
    单反手动对焦M档,AV,TV,P,A,A-DEP
    chrome不支持字体12px
    火狐解决字体模糊
    《程序员的自我修养》阅读笔记(四):
  • 原文地址:https://www.cnblogs.com/fengmin/p/5548415.html
Copyright © 2011-2022 走看看