PNGイメージは圧縮されていて、UIImageViewとしてUIImagesとしてロードされると、それらはメモリ内で元のファイルよりもはるかに多く占有されることがわかります。これはJPGイメージにも当てはまりますか?UIImageViewのJPGイメージメモリフットプリント
1
A
答えて
6
短い答え:はい。
長い答え:JPEGはロッシーな圧縮方式で、元のビットマップよりも桁違いの大きさの画像を圧縮することができます。 PNGは可逆圧縮方式であるため、JPEGほどの圧縮率は得られません。
このため、非常に小さいJPEGファイルは、圧縮されると膨大なサイズになり、同等のPNGファイルよりもはるかに大きくなります。
ただし、イメージをビットマップとしてメモリにロードすると、読み込まれるファイルの種類に関係なく、予測可能な量のメモリが消費されることに注意してください。
ビットマップイメージは1ピクセルあたり正確な量のメモリを使用するからです(実際には、標準の32ビットイメージの場合は1ピクセルあたり32ビットです)。したがって、ピクセル単位の幅にピクセル単位の高さを掛け、それに4を掛けることで(32ビットイメージであると仮定して)、イメージに必要なメモリを簡単に計算できます(32/8ビット/バイト)。これは、RAMにイメージのビットマップデータを格納するために必要なバイト数を示します。
したがって640×480ピクセル、32ビットの画像は使用:ちょうど1メガバイトを超える* 480 640 * 4 = 1228800バイト、。このビットマップをバッキングストアとして使用するオブジェクトのUIImage
は、少しオーバーヘッドを追加します。
iMacなどで使用されているApple 27インチディスプレイの解像度は2560 x 1440です。デスクトップのビットマップイメージを保持するためには14 MBのRAMが必要です。
関連する問題
- 1. UIImageViewでjpgのサイズを変更するには?
- 2. ".JPG"または ".jpg"?
- 3. JPG
- 4. エラーの解釈JPGファイル:未JPGファイルは:ないJPGファイル:0xffでのの0x28
- 5. UIImageView
- 6. UIImageView
- 7. 別のUIImageViewにドラッグUIImageViewとドロップ
- 8. 別のUIImageViewでUIImageViewをマスクする
- 9. リアルタイムのJPGフレームストリーミングネットワーク
- 10. PHPのJPGシーケンス
- 11. のJPGコンテンツタイプ
- 12. のみ ".jpg"(Android)
- 13. イメージを取得するJPGとjpg
- 14. PIL - JPG
- 15. OCUnitのUIImageViewエラー
- 16. UIImageViewのズームルーペ
- 17. のObjective C - UIImageview
- 18. JSONのUIImageView
- 19. UIImageViewのインタラクティブ
- 20. UIImageView別のドラッグアンドドロップ
- 21. UIImageViewのアスペクト比
- 22. UIImageViewのCALayer
- 23. UITableViewCellのカスタムUIImageView
- 24. UIImageViewアニメーションのトラブル
- 25. UIViewのインナーシャドウ(UIImageView)
- 26. UIImageViewにUIImageViewをプログラムで追加する
- 27. オープンUIImageView
- 28. UIImageViewスライドオーバー
- 29. UIImageView:フルスクリーンイメージ
- 30. UIImageViewハーフムーンスライス
偉大な答え。ありがとう。 – RaffAl
Retina Display(2048×1536)のiPadは、それぞれの背景画像に12.5メガバイトを使用します。 –