3

私はj2meでゲームを開発しています。このゲームにはスプライトは必要ありません。画像を直接ペイントしています。画像を反転するために私が従う方法は次のとおりです。しかし、デバイスでは、図1.1のように表示されます。この問題を解決する方法。助けてください。

Image.createImage(source,0, 0, source.getWidth(), source.getHeight(), Sprite.TRANS_ROT180);

図1.0:車の画像を反転する前

ここに画像の説明を入力してください

図1.1:車の画像を反転した後

ここに画像の説明を入力してください

見たように裏返すと、背景は白になります。画像を反転する他の方法はありますか?

車の幅は60x62で、透明なピクセルがあります。ただし、同じ画像を反転すると、白い背景で透明度が失われます。

4

1 に答える 1

3

API ドキュメントによると、元の画像が不変の場合、このバージョンのImage.createImageは透明性を維持することが期待されています。

不変のソース イメージの場合、透明度情報があれば、変更されずに新しいイメージにコピーされます。

反転した画像で透明度が失われる原因を突き止めるにはalpha、Image クラス、Alphaの API ドキュメントで説明されているように、1) ソース画像が不変であり、2) ソース画像のピクセルが実際に透明であるかどうか (チャネル値が 0) を確認します。処理部

変更可能なイメージ内のすべてのピクセルは、常に完全に不透明です。不変の画像には、完全に不透明なピクセル...、完全に透明なピクセル (アルファ = 0)、半透明のピクセル... の組み合わせが含まれる場合があります。

実装は、不変イメージ内の完全に不透明なピクセルと完全に透明なピクセルの格納、処理、およびレンダリングをサポートする必要があります。ソース データ (PNG ファイルまたは ARGB データの配列) から画像を作成する場合、ソース データ内の完全に不透明なピクセルは常に、新しい画像では完全に不透明なピクセルになり、新しい画像では完全に透明なピクセルになる必要があります。ソース データは常に、新しい画像で完全に透明なピクセルになる必要があります...

于 2013-02-11T12:30:00.480 に答える