iOSに手動でファイルイメージファイルの2倍バージョンを読み込ませようとしています。私はリソースを節約するためにこれをやっている - 私はiPhoneのバージョンのためのグラフィックが必要で、私はiPadのバージョンの1:1のスケールでそれを使用したい。iPad上でイメージのx2バージョンの読み込みを強制的に行うと、画像がぼやけます
これを行うには、initWithContentsOfFileを使用できません。これは、x2をファイル名に追加してもiOSがx1バージョンを提供するためです。代わりに、私はこのコードを使用します:
NSString *filename = [myImage filenameWithSuffix:@"@2x"];
UIImage *image = [[UIImage alloc] initWithCGImage:[[UIImage imageWithData:[NSData dataWithContentsOfFile:filename]] CGImage]
scale:1.0
orientation:UIImageOrientationUp];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
それは動作します。私はそれがx2バージョンを拾っていることを100%確信しています(私は確かめるためにそのグラフィックを変更しました)。
しかし、画面に表示されているときに、正しいサイズで、それはぼやけています。実際には、x1バージョンが200%爆破されたように見えるので、iOSは自分のイメージに奇妙なことをしています。
イメージがピクセル境界で描画されていることを確認しました。
UPDATE:
私はX2の接尾辞せずに別の画像ファイルを作成し、それをロードするためにinitWithContentsOfFileを使用する場合でも、それはまだ不鮮明です。だから、これはどのようにロードされているかとは何の関係もありません。
ピクセルの位置合わせ以外に、画像の劣化の原因は何ですか?
私はスクリーンショットを撮ってPhotoshopの元のイメージと比較しています。それはまったく同じサイズなので、スケーリングは問題ではありません。
スケールを指定する必要はありません。あなたは通常の名前を使用しようとしましたが、あなたのためにOSを "@ 2x"にしようとしましたか? –
これはx2の面とは関係がないことが判明しました。詳細については、私のアップデートを参照してください。 – tarmes