iPhone Application Programming Guide(developer only)にもあるように,PNG画像は圧縮した方がいいらしい.
XCodeでリソースとして使用するPNG画像は,自動的に圧縮,最適化される.最適化はビルド時にcopypngというコマンドラインツールで自動的に処理される.以下,XCodeの設定項目.デフォルトでPNG画像は圧縮される.


pngSetting.png

UIImageは,最適化PNGで作成したものの方が,描画が速いことがわかっている.あらかじめリソースとして使用するPNG画像は問題ないのだが,ネット経由でダウンロードしたJPEG,GIF,PNG画像は,そうではない.そこで,ダウンロードした画像や動的に作成した画像を最適化PNGに変換する必要がある.
そこで,takiuchi氏が最適化PNGを解析し,それを作成するコードを作ってくれた(すばらしい).しかもMIT Lisenceで公開,かつ「公開してもいいよ」ということなので,それに基づいてクラスにしてみた.
たとえば,ダウンロードしてきた画像ファイルには,以下のように使える.

--->NSData *downloadedData;
NSData* optimizedPNG = [downloadedData optimizedData];
UIImage* optimizedImage = [UIImage imageWithData:optimizedPNG];

他にもQuartzなどでPNGを生成したとき,

--->UIImage* generatedImage
NSData* optimizedPNG = [generatedImage optimizedData];
UIImage* optimizedImage = [UIImage imageWithData:optimizedPNG];

他の画像フォーマットから最適化PNG生成には,時間がかかるが,極めて素早くレンダリングしたい場合は,最適化PNGファイルにした方がいいと考える.
http://code.google.com/p/sonson-code/source/browse/#svn/trunk/iPhone2.0/OptimizedPNG