PNG が XCode iPhone プロジェクトに追加されると、コンパイラは pngcrush を使用してそれを最適化します。デバイスに読み込まれると、画像のレンダリング パフォーマンスは非常に高速になります。
私の問題は、アプリケーションが実行時に外部ソースから PNG をダウンロードすることです (Google Data API を使用して、Picasa Web アルバムから)。残念ながら、これらの画像のパフォーマンスは非常に悪いです。画像の上にカスタム レンダリングを行うと、内部に保存されているものよりも 100 倍遅くなります。これは、ダウンロードした画像が最適化されていないことが原因であると強く疑っています。
iPhoneで実行時に外部からダウンロードしたPNGを最適化する方法を知っている人はいますか? それができる授業を期待しています。pngcrush のソース コードを自分のアプリに追加することも検討しましたが、これは思い切った方法に思えます。私はまともな答えを自分で見つけることができませんでした。どんな助けにもとても感謝しています。
ありがとう!
更新: 一部の人々は、ファイルのサイズが原因である可能性があると示唆していますが、そうではありません。テスト中に、まったく同じ PNG の埋め込みバージョンとダウンロード バージョンの使用を切り替えるトグル ボタンを追加しました。唯一の違いは、埋め込まれたものがコンパイル中に「pngcrush」によって最適化されたことです。これにより、(RGBA から BRGA への) バイト交換とアルファの事前乗算が行われます。( http://iphonedevelopment.blogspot.com/2008/10/iphone-optimized-pngs.html )
また、私が言及しているパフォーマンスはダウンロードではなく、レンダリングです。画像の上にカスタム ペイントを重ね合わせます (UIView の drawRect メソッドをオーバーライドします)。背景がダウンロードされたバージョンの場合は非常に途切れ途切れになり、埋め込まれた (したがって最適化された) バージョンの場合は非常に滑らかになります。繰り返しますが、それはまったく同じファイルです。唯一の違いは最適化です。これは、実行時にイメージをダウンロードした後、デバイス上で実行できることを望んでいます。
みんなの助けをありがとう!