iOS遇到的坑

1、二維碼尺寸必須是59*59及以上,否則微信內(nèi)長按識別不了二維碼,其他手機(jī)掃二維碼可能會掃不出來

代碼:

+ (UIImage *)generateQRCodeWithString:(NSString *)string size:(CGFloat)size {

? ? if(!string || string.length==0) {

? ? ? ? returnUIImage.new;

? ? }

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

? ? //過濾器恢復(fù)默認(rèn)

? ? [filtersetDefaults];

? ? //給過濾器添加數(shù)據(jù)<字符串長度893>

? ? NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion: NO];

? ? [filtersetValue:dataforKey:@"inputMessage"];

? ? // 注: 這里如果設(shè)置H的時(shí)間 二維碼太小可能會造成信息不全 無法掃描

? ? [filtersetValue:@"M" forKey:@"inputCorrectionLevel"];

? ? //獲取二維碼過濾器生成二維碼

? ? CIImage*image = [filteroutputImage];

? ? UIImage *img = [self createNonInterpolatedUIImageFromCIImage:[image imageByApplyingTransform:CGAffineTransformMakeScale(YYScreenScale(), YYScreenScale())] WithSize:size];


? ? returnimg;

}

+ (UIImage *)createNonInterpolatedUIImageFromCIImage:(CIImage *)image WithSize:(CGFloat)size {

? ? CGRect extent = CGRectIntegral(image.extent);

? ? CGFloatscale =MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));


? ? //創(chuàng)建bitmap

? ? size_twidth =CGRectGetWidth(extent)*scale;

? ? size_theight =CGRectGetHeight(extent)*scale;

? ? CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();

? ? CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);

? ? CIContext *context = [CIContext contextWithOptions:nil];

? ? CGImageRefbitmapImage = [contextcreateCGImage:imagefromRect:extent];

? ? CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);

? ? CGContextScaleCTM(bitmapRef, scale, scale);

? ? CGContextDrawImage(bitmapRef, extent, bitmapImage);


? ? //保存圖片

? ? CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);

//? ? UIImage *newImage = [UIImage imageWithCGImage:scaledImage];

? ? UIImage *newImage = [UIImage imageWithCGImage:scaledImage scale:YYScreenScale() orientation:UIImageOrientationUp];


? ? CGContextRelease(bitmapRef);

? ? CGImageRelease(bitmapImage);

? ? CGColorSpaceRelease(cs);

? ? CGImageRelease(scaledImage);


? ? returnnewImage;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • IOS 開發(fā)值網(wǎng)絡(luò)權(quán)限和跳轉(zhuǎn)系統(tǒng)的指定界面 在開發(fā)中APP 首次安裝的時(shí)候,會彈出一個(gè)是否允許APP 訪問網(wǎng)絡(luò)...
    先用這個(gè)吧閱讀 1,986評論 0 1
  • 1、以資源文件預(yù)加載sqlite的時(shí)候,模擬器一切正常,真機(jī)無法操作數(shù)據(jù)庫。 報(bào)錯(cuò): Unknown error ...
    浪漫旋律閱讀 2,535評論 0 0
  • 1.cocoapod GPUImage里面的代碼不加載它對應(yīng)文件的資源圖片 在 加入代碼 if [[ "$CONF...
    蕭城x閱讀 1,118評論 0 0
  • 職業(yè)轉(zhuǎn)型期的文潔意外在自閉癥康復(fù)中心成了“異得”人士,結(jié)識了手繪二維碼的自閉男孩小純和網(wǎng)紅雪兒。 神秘二維碼為何導(dǎo)...
    浩哥帶你玩閱讀 1,056評論 0 9
  • 1. 二維碼掃碼庫介紹 二維碼又稱QR Code,QR全稱Quick Response,是一個(gè)近幾年來移動設(shè)備上超...
    Jinwong閱讀 12,885評論 1 40

友情鏈接更多精彩內(nèi)容