com.nttdocomo.ui
クラス PalettedImage

Object
  拡張com.nttdocomo.ui.Image
      拡張com.nttdocomo.ui.PalettedImage

public abstract class PalettedImage
extends Image

パレットを設定できるイメージを定義します。 PalettedImage クラスのオブジェクトはイメージの情報とパレットの情報を別々に持ち、 パレットを後から入れ替えることによって色違いの画像を描画することができます。
PalettedImage オブジェクトを生成すると、 同時に Palette オブジェクトも生成され、 PalettedImage オブジェクトに保持されます。 その Palette オブジェクトのエントリを直接変更することもできますし、 新たに生成した別の Palette オブジェクトを PalettedImage オブジェクトに設定することもできます。

また、複数の PalettedImage オブジェクトに同一の Palette オブジェクトを設定すると、 一つのパレットを変更するだけで複数の画像を色違いで描画することができます。

PalettedImage クラスは Image クラスのサブクラスですが、 Image を引数に取るメソッドの中のどのメソッドで使用できるのかは機種依存です。 PalettedImage に対応していないメソッドの引数に PalettedImage オブジェクトを指定して呼び出した場合、 特に例外は発生しませんが、描画内容については機種依存となります。 ただし、そのメソッドに特に規定が有る場合には、その規定が優先されます。

ミニマムスペックでは、以下の描画がサポートされています。

[DoJa-5.0 (903i) 以降]
透過色インデックス指定による透過イメージの描画や、 α値指定による半透明描画も可能です。 PalettedImage の描画がサポートされているメソッドでは、 これら新機能を使った描画もサポートされています。
なお、透過色指定の方法が、 スーパークラスにおける方法と異なることに注意してください。

導入されたバージョン:
DoJa-3.5 (900i)
関連項目:
Palette

コンストラクタの概要
protected PalettedImage()
          アプリケーションが直接このクラスのインスタンスを生成することはできません。
 
メソッドの概要
 void changeData(byte[] data)
           現在のイメージ情報・パレット情報を、 バイト配列で指定された画像データのイメージ情報・ パレット情報に差し替えます。
 void changeData(java.io.InputStream in)
           現在のイメージ情報・パレット情報を、 ストリームで指定された画像データのイメージ情報 ・パレット情報に差し替えます。
static PalettedImage createPalettedImage(byte[] data)
           バイト配列を指定してパレットを設定できるイメージを生成します。
static PalettedImage createPalettedImage(java.io.InputStream in)
           ストリームを指定してパレットを設定できるイメージを生成します。
static PalettedImage createPalettedImage(int width, int height)
           画像の縦・横サイズのみを指定して、 パレットを設定できる空のイメージを生成します。
 Graphics getGraphics()
          このクラスのインスタンスに対して呼び出すことはできません。
 Palette getPalette()
          パレットを取得します。
 int getTransparentColor()
          このメソッドは呼び出すことはできません。
 int getTransparentIndex()
           setTransparentIndex(int) にて指定されている透過色インデックスを取得します。
 void setPalette(Palette palette)
          パレットを設定します。
 void setTransparentColor(int color)
           このメソッドは呼び出すことはできません。
 void setTransparentEnabled(boolean enabled)
           透過色インデックス指定の有効・無効を設定します。
 void setTransparentIndex(int index)
           透過色インデックスを指定します。
 
クラス com.nttdocomo.ui.Image から継承したメソッド
createImage, createImage, dispose, getAlpha, getHeight, getWidth, setAlpha
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

PalettedImage

protected PalettedImage()
アプリケーションが直接このクラスのインスタンスを生成することはできません。

メソッドの詳細

createPalettedImage

public static PalettedImage createPalettedImage(java.io.InputStream in)

ストリームを指定してパレットを設定できるイメージを生成します。 画像のバイナリデータからイメージ情報とパレット情報が生成されます。 引数に指定できる、画像のバイナリデータの形式は以下の通りです。

  • [DoJa-4.1 (902iS) まで] GIF 画像
  • [DoJa-5.0 (903i) 以降] GIF 画像・Windows BMP 画像 (パレット形式である1、4、8ビットのみ)

イメージ情報は最大 256 色までのインデックスカラー表現で格納され、 描画時にはその時点で設定されているパレット情報を用いて色を復元しながら描画を行います。

パレット情報は、 画像のバイナリデータのヘッダに記録されているカラーテーブルと同順・ 同サイズのエントリを持つパレットオブジェクトが生成され、 その中に格納されます。 また、カラーテーブルのサイズは生成された PalettedImage オブジェクトに記録さます。 以後、色数がこのカラーテーブルのサイズに満たないパレットオブジェクトは setPalette(Palette) メソッドで設定することはできません。

引数にアニメーションGIFを指定した場合は、 1 枚目の画像を元にイメージ情報とパレットオブジェクトが生成されます。
また、 引数に指定された画像データが透過 GIF であり、 透過色インデックスが index である場合には、 以下のように振る舞います。

[DoJa-4.1 (902iS) まで]
生成されるパレットオブジェクトにおいて index 番目のエントリが常に透過色指定された状態になります。 透過色指定を解除・変更することはできません。
[DoJa-5.0 (903i) 以降]
このオブジェクトの 透過色インデックスも index に設定され、透過色インデックス指定も有効化されます。 そうでない場合は、透過色インデックス指定は無効化され、 透過色インデックスには0が設定されます。

パラメータ:
in - イメージのデータを含む入力ストリームを指定します。 画像のバイナリデータをそのまま読み出すことができる入力ストリームを指定します。
戻り値:
パレットを設定できるイメージを返します。
例外:
NullPointerException - 引数 in に null が指定された場合に発生します。
UIException - 引数 in に不正なデータが指定された場合に発生します(UNSUPPORTED_FORMAT)。

createPalettedImage

public static PalettedImage createPalettedImage(byte[] data)

バイト配列を指定してパレットを設定できるイメージを生成します。 画像のバイナリデータからイメージ情報とパレット情報が生成されます。

引数に指定する画像のバイナリデータがバイト配列である点を除けば、 createPalettedImage(InputStream) と同様な振る舞いをします。

パラメータ:
data - イメージのデータを含むバイト配列指定します。 画像のバイナリデータがそのまま格納されたバイト配列を指定します。
戻り値:
パレットを設定できるイメージを返します。
例外:
NullPointerException - 引数 data に null が指定された場合に発生します。
UIException - 引数 data に不正なデータが指定された場合に発生します(UNSUPPORTED_FORMAT)。

createPalettedImage

public static PalettedImage createPalettedImage(int width,
                                                int height)

画像の縦・横サイズのみを指定して、 パレットを設定できる空のイメージを生成します。

これによって生成されるイメージは、