J2ME アプリケーションにイメージをロードする標準的な方法は、Image.createImage メソッドを使用することであり、推奨されるイメージ形式は PNG です。
現在、J2ME の仕様では、このメソッドの実装やイメージのメモリ内表現に制限を設けていないため、ベンダーごとに実装が異なります。
特に Motorola には、画像作成時に PNG が ARGB バイト配列に完全にデコードされるという、本当にお粗末な実装があります。これは、サイズが 176x208 の 8K の png は、読み込みに約 170K のピーク メモリを占有し、Image オブジェクト自体が使用するメモリは約 145K であることを意味します。Nokia、Sony Ericsson などの他の携帯電話では、同じ画像を読み込んでメモリに保存するのに約 16K しかかかりません。
これは私の J2ME アプリに大混乱をもたらし、Motorola の携帯電話で適切なバージョンを実行することはほとんど不可能になっています。画像の gzip された ARGB バイト配列を使用してペイント中に収縮させるなど、さまざまな回避策を試しましたが、ペイントが 10 倍遅くなります。
この問題の回避策を知っている人はいますか? Motorola にはないスマートな機能を備えた J2ME 用のオープン ソース PNG 画像デコーダ? または、メモリのフットプリントを削減するために PNG 画像に対して実行できることはありますか? (私は現在、インデックス付きモードのPNGを使用しています)ポインタはまったく歓迎されます..
ゴウリ