基本的に、Webサーバーからイメージをダウンロードしてディスクにキャッシュしますが、その前にマスクします。私は、マスキングコード皆を使用してい を指すように思われるここで見つけることができます: 、しかしたまたま画像が細かい表示されていることですが、どのようなhttp://iosdevelopertips.com/cocoa/how-to-mask-an-image.htmlマスクされたイメージをPNGファイルとしてディスクに書き込む
UIImage *img = [self maskImage:[UIImage imageWithData:data] withMask:self.imageMask];
[UIImagePNGRepresentation(img) writeToFile:cachePath atomically:NO];
でディスクに書き込まれますバージョン
は、後で表示されるものと比較するとアルファチャンネルが反転しています(ここでは同じUIImageインスタンスを使用しています)。
アイデア?キャッシュされたバージョンをマスクする必要があります。そうしないと、毎回マスクする必要がある場合、テーブルビューで画像を表示するのが非常に遅くなります。
編集:そうです、UIImagePNGRepresentation(img)はアルファチャンネルを逆転させるようですが、ディスクに書き込むコードとは関係ありませんが、とにかくチェックしました。
UIImageJPEGRepresentationを使用しても同じ結果になりますか?私はあなたがJPEGに切り替えることを示唆していません。同じ効果があるかどうかは疑問です。 –
私はしようとしますが、JPEGはアルファマスクを持っているという目的を破っています。 –
奇妙なことに、JPEGがうまく見えて、マスクが正しく適用されています。 –