いくつかの単語の男は、コードに直接、言いました
/ **
* CIImageはUIImageを生成し、指定したサイズによると、
*
* @paramイメージCIImage
* @Paramサイズの画像の幅
* /
- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)画像withSize:(CGFloat)サイズ
{
CGRectエクステント= CGRectIntegral(image.extent)。
CGFloatscale = MIN(サイズ/ CGRectGetWidth(程度)、サイズ/ CGRectGetHeight(程度))。
// 1.ビットマップを作成します。
size_twidth = CGRectGetWidth(程度)*スケール。
size_theight = CGRectGetHeight(程度)*スケール。
CGColorSpaceRef CS = CGColorSpaceCreateDeviceGray()。
CGContextRef bitmapRef = CGBitmapContextCreate(NIL、幅、高さ、8、0、CS、(CGBitmapInfo)kCGImageAlphaNone)。
CIContext *コンテキスト= [CIContext contextWithOptions:なし]。
CGImageRefbitmapImage = [contextcreateCGImage:imagefromRect:エクステント]。
CGContextSetInterpolationQuality(bitmapRef、kCGInterpolationNone)。
CGContextScaleCTM(bitmapRef、スケール、スケール)。
CGContextDrawImage(bitmapRef、程度のBitmapImage)。
// 2.画像にビットマップを保存
CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef)。
CGContextRelease(bitmapRef)。
CGImageRelease(のBitmapImage)。
戻る[UIImage imageWithCGImage:scaledImage];
}
上記のメソッドを呼び出します
//二次元コードのフィルタ1例
CIFilterの*フィルタ= [CIFilter filterWithName: "CIQRCodeGenerator" @]。
// 2.フィルタのデフォルトのプロパティを復元
【filtersetDefaults]。
3. NSDataのに//文字列
NSStringの* urlStr = @「http://www.ychpay.com/down.html」; //テスト2次元コードのアドレス、時間のバックオフィスのスタッフとで(2次元コード・サーバーに対処する必要性と、支払うことができない二次元コード)
NSDataの*データ= [urlStr dataUsingEncoding:NSUTF8StringEncoding]。
KVOが提供する// 4. inputMessageフィルタデータ
[filtersetValue:dataforKey:@ "inputMessage"];
//画像得られたフィルタ出力
CIImage * outputImage = [filteroutputImage]。
// 6. UIImage CIImageに変換され、ズーム(この時点で取得された2次元コードが曖昧であり、createNonInterpolatedUIImageFormCIImage二次元コードを再描画する以下の方法を使用することが必要です)
// UIImage * codeImage = [UIImage imageWithCIImage:outputImageスケール:1.0オリエンテーション:UIImageOrientationUp]。
UIImageView * wechatImageView = [[UIImageView ALLOC] initWithFrame:CGRectMake(40、30、SCREEN_WIDTH - 80、SCREEN_WIDTH - 80)]。
wechatImageView.image = [自己createNonInterpolatedUIImageFormCIImage:outputImage withSize:200]; //は、2次元コードを再描画、それが明確に表示されます
[Self.viewaddSubview:wechatImageView]。
同じように、あなたのURLのURLを置き換えます
ます。https://www.jianshu.com/p/aff05798f13bで再現