UIImageView を使用して多数のフレームをアニメーション化する場合、iOS はどのようにそれらをメモリにマップするのか、単に画像解像度 x ビット深度 (つまり、200x200 24 ビット TGA は 200x200 24 ビット JPG と同じ) なのか、それとも iOS は未使用のアルファ ピクセルを考慮に入れるのか画像。また、これは Xcode プロジェクトにロードされた (おそらく使用されていない) 画像と、メモリに直接ロードされた (つまり、アプリ内から UIImage imageNamed: を使用して) 画像でどのように機能しますか?
1 に答える
1
画像が24ビットであっても32ビットに解凍されると思います。デフォルトの色空間は4チャンネルなので、サイズは通常number_of_pixel_in_row*number_of_pixel_in_height*byte_for_pixels
。です。私のテストでは、フォーマットが異なっていても、常に同じメモリ消費量が見られました。画像は、コンテキストで描画する必要があるときに遅延ロードされ、その後解放されない場合はメモリの負荷が維持されます。つまり、UIImageオブジェクトを作成しても、描画が必要になるまで解凍されません。-imageNamedなどのメソッドは、画像をメモリにキャッシュします。私は通常、繰り返しの画像にのみ使用します。
お役に立てれば
于 2012-04-25T18:43:34.813 に答える