はここで見つける:https://github.com/jverkoey/ObjQREncoderkCAFilterNearestのmaginifcationフィルタ(UIImageView)
は基本的に、私はこの著者によってサンプルコードを見て、彼はQRコードを作成するときには、無ピクセレーションと完全に出てきます。ライブラリが提供する画像自体は33 x 33ピクセルですが、kCAFilterNearestを使用して拡大表示し、非常に明瞭にします(ピクセル化なし)。ここでは彼のコードは次のとおりです。
UIImage* image = [QREncoder encode:@"http://www.google.com/"];
UIImageView* imageView = [[UIImageView alloc] initWithImage:image];
CGFloat qrSize = self.view.bounds.size.width - kPadding * 2;
imageView.frame = CGRectMake(kPadding, (self.view.bounds.size.height - qrSize)/2,
qrSize, qrSize);
[imageView layer].magnificationFilter = kCAFilterNearest;
[self.view addSubview:imageView];
私はXIBでUIImageViewを持っている、と私はそれがこのようなイメージです設定しています:
[[template imageVQRCode] setImage:[QREncoder encode:ticketNum]];
[[[template imageVQRCode] layer] setMagnificationFilter:kCAFilterNearest];
が、QRコードは実際にぼやけています。この例では、クリスタルクリアが出ます。 何が間違っていますか? ありがとう!
更新:私は、スケーリングやkCAFFilterNearestとは関係がないことを知りました。これは、ビューからPNG画像を生成することと関係しています。ここは、それはそれは私が(QRCodes品質に注意してください)PNG表現にUIViewのを保存するときにどのように見えるか対deiveにどのように見えるかです:
UPDATE 2:これは私がPNGファイルを生成しています方法ですUIViewから:
UIGraphicsBeginImageContextWithOptions([[template view] bounds].size, YES, 0.0);
[[[template view] layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[UIImagePNGRepresentation(viewImage) writeToFile:plistPath atomically:YES];
これは少し明確にする必要があると思います。ビュー内のQRコードの表示や、そのビューから作成したPNGファイルの表示に関係していますか? – Corin
返信いただきありがとうございます。問題は、生成されたPNGファイルです。基本的に、あなたが見ることができるように、シミュレータ上のビュー内のQRコードは、生成されたPNGよりもはるかに鮮明で明瞭です。私は元の質問を、私がPNG画像を生成するために使用しているコードで更新しました。 – sumderungHAY