|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.docomostar.ui.Image
com.docomostar.ui.PalettedImage
public abstract class PalettedImage
パレットを設定できるイメージを定義します。
PalettedImage クラスのオブジェクトはイメージの情報とパレットの情報を別々に持ち、
パレットを後から入れ替えることによって色違いの画像を描画することができます。
PalettedImage オブジェクトを生成すると、
同時に Palette
オブジェクトも生成され、
PalettedImage オブジェクトに保持されます。
その Palette オブジェクトのエントリを直接変更することもできますし、
新たに生成した別の Palette オブジェクトを
PalettedImage オブジェクトに設定することもできます。
また、複数の PalettedImage オブジェクトに同一の Palette オブジェクトを設定すると、 一つのパレットを変更するだけで複数の画像を色違いで描画することができます。
PalettedImage クラスは Image
クラスのサブクラスですが、
Image を引数に取るメソッドの中のどのメソッドで使用できるのかは機種依存です。
PalettedImage に対応していないメソッドの引数に PalettedImage オブジェクトを指定して呼び出した場合、
特に例外は発生しませんが、描画内容については機種依存となります。
ただし、そのメソッドに特に規定が有る場合には、その規定が優先されます。
ミニマムスペックでは、以下の描画がサポートされています。
Graphics.drawImage(Image, int, int)
、
Graphics.drawImage(Image, int, int, int, int, int, int)
による描画
SpriteSet
の描画
ImageMap
の描画
透過色インデックス指定による透過イメージの描画や、
α値指定による半透明描画も可能です。
PalettedImage の描画がサポートされているメソッドでは、
これらの機能を使った描画もサポートされています。
なお、透過色指定の方法が、
スーパークラスにおける方法と異なる
ことに注意してください。
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.docomostar.ui.Image から継承されたメソッド |
---|
createImage, createImage, dispose, getAlpha, getHeight, getWidth, setAlpha |
クラス Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected PalettedImage()
メソッドの詳細 |
---|
public static PalettedImage createPalettedImage(java.io.InputStream in)
ストリームを指定してパレットを設定できるイメージを生成します。 画像のバイナリデータからイメージ情報とパレット情報が生成されます。 引数に指定できる画像のバイナリデータは、GIF 画像と Windows BMP 画像 (パレット形式である1、4、8ビットのみ)です。
イメージ情報は最大 256 色までのインデックスカラー表現で格納され、 描画時にはその時点で設定されているパレット情報を用いて色を復元しながら描画を行います。
パレット情報は、
画像のバイナリデータのヘッダに記録されているカラーテーブルと同順・
同サイズのエントリを持つパレットオブジェクトが生成され、
その中に格納されます。
また、カラーテーブルのサイズは生成された PalettedImage
オブジェクトに記録さます。
以後、色数がこのカラーテーブルのサイズに満たないパレットオブジェクトは
setPalette(Palette)
メソッドで設定することはできません。
引数にアニメーションGIFを指定した場合は、
1 枚目の画像を元にイメージ情報とパレットオブジェクトが生成されます。
また、
引数に指定された画像データが透過 GIF であり、
透過 GIF の透過色インデックスが index である場合は、
このオブジェクトの透過色インデックス
にも
index が設定され、透過色インデックス指定も有効化
されます。
画像データが透過 GIF でない場合は、
このオブジェクトの透過色インデックスには 0 が設定され、透過色インデックス指定は無効化されます。
in
- イメージのデータを含む入力ストリームを指定します。
画像のバイナリデータをそのまま読み出すことができる入力ストリームを指定します。
NullPointerException
-
UIException
- public static PalettedImage createPalettedImage(byte[] data)
バイト配列を指定してパレットを設定できるイメージを生成します。 画像のバイナリデータからイメージ情報とパレット情報が生成されます。
引数に指定する画像のバイナリデータがバイト配列である点を除けば、
createPalettedImage(InputStream)
と同様な振る舞いをします。
data
- イメージのデータを含むバイト配列指定します。
画像のバイナリデータがそのまま格納されたバイト配列を指定します。
NullPointerException
-
UIException
- public static PalettedImage createPalettedImage(int width, int height)
画像の縦・横サイズのみを指定して、 パレットを設定できる空のイメージを生成します。
これによって生成されるイメージは、引数で指定された幅・高さを持ち、
全ての画素のインデックス値は 0 で初期化されています。
パレット情報としては new Palette(1)
によって生成されたパレットオブジェクトが設定されています。
このメソッドは changeData(InputStream)
における上書き対象領域の確保のみを行いたい場合に有用です。
例えば、ひとつの PalettedImage
で、
画像 a, b, c を使い回す場合を考えます。
画像は a, b, c の順番で利用するが、
縦・横サイズの一番大きな画像は b である場合に、
b の縦・横サイズを指定してこのメソッドを呼び出してから
changeData()
で画像 a を読み込ませることで、
サイズオーバになることなく、a, b, c 全ての画像を使い回すことが出来ます。
width
- 生成したい空イメージの幅(横方向ピクセル数)を指定します。height
- 生成したい空イメージの高さ(縦方向ピクセル数)を指定します。
IllegalArgumentException
-
IllegalArgumentException
-
public void changeData(java.io.InputStream in)
現在のイメージ情報・パレット情報を、 ストリームで指定された画像データのイメージ情報 ・パレット情報に差し替えます。
生成時(createPalettedImage()
呼び出し時)に指定したイメージ(アニメーション GIF
の場合は1枚目のイメージ)の幅
・高さ
以下の幅・高さを持つイメージの画像データでのみ、
差し替えることが可能です。
以前と異なる幅・高さを持つ画像データで差し替えた場合には、
Image.getWidth()
、Image.getHeight()
で得られる値も、新しいイメージの幅・高さとなります。
指定された画像データは、 元のイメージが内部表現形式に展開されている領域に上書き展開されます。 したがって、このメソッド呼び出しにより、その領域確保のために新たにメモリを消費することはありません。
この「内部表現形式に展開されている領域」のサイズは、
createPalettedImage()
呼び出し時に確保された時点で確定し、
このメソッド呼び出しによって増減することはありません。
したがって、createPalettedImage()
呼び出し時に指定したイメージの幅・
高さよりも小さいサイズのイメージで差し替えた場合でも、
消費メモリ量は減少しません。
逆に、一旦小さいサイズのイメージで差し替えた後に、
再度、大きいサイズのイメージ
(もちろん createPalettedImage()
呼び出し時に指定したイメージのサイズ以下である必要はあります)
で差し替えても、新たなメモリ消費はありません。
このメソッドを呼び出しにより、
新しい画像データに基づいて、パレット情報が再生成され、
透過色関連の情報が再設定されます。これらの情報の生成方法は
createPalettedImage(InputStream)
呼び出し時と同様です。
また、新しい画像データが透過 GIF であった場合や、
アニメーション GIF であった場合の扱いも、
createPalettedImage(InputStream)
呼び出し時と同様です。
例外が発生した場合には、 このオブジェクトは dispose() メソッドを呼び出した場合と同様の状態となります。
in
- 差し替えたい画像データが格納されている入力ストリームを指定します。
UIException
- NullPointerException
-
UIException
- UIException
- UIException
- public void changeData(byte[] data)
現在のイメージ情報・パレット情報を、 バイト配列で指定された画像データのイメージ情報・ パレット情報に差し替えます。
上書きする画像データとしてバイト配列が指定される点を除けば、
changeData(InputStream)
と同様な振る舞いをします。
data
- 差し替えたい画像データが格納されているバイト配列を指定します。
UIException
- NullPointerException
-
UIException
- UIException
-