Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

javax.microedition.lcdui
クラス Image

java.lang.Object
  上位を拡張 javax.microedition.lcdui.Image

public class Image
extends Object

このクラスはグラフィカルなイメージ・データを保持するために使用します。 Image オブジェクトはディスプレイ装置とは無関係に存在します。 それらはオフスクリーン・メモリに存在し、アプリケーションが明示的に表示するように記述する(Canvas オブジェクトの paint(Graphics) メソッド内において)か、Alert および Form スクリーンに Image オブジェクトを設定し、そのスクリーンがカレントに設定されるまでディスプレイには表示されません。

Image オブジェクトはそれが作成された方法に依存して不変タイプ可変タイプのいずれかになります。 不変タイプのイメージは、一般的にリソースバンドルやファイル、ネットワーク等から固定的なイメージ・データをロードして作成されます。 このタイプのイメージは作成された後に内容を変更することはできません。 可変タイプのイメージはオフスクリーン・メモリの中に作成されます。 アプリケーションはこのタイプの Image オブジェクトに対して任意の描画を行うことができます。 AlertChoiceFormImageItem オブジェクトに設定することができる Image オブジェクトは、実装がいつでもディスプレイを更新するためにイメージを参照できるように不変タイプのみとなります。

可変タイプのイメージから createImage(Image) メソッドを使用して不変タイプのイメージを作成することができます。 同様に、以下のような記述を行うことで、不変タイプのイメージから可変タイプのイメージを作成することができます。

     Image source; // コピー元のイメージ
     source = Image.createImage(...);
     Image copy = Image.createImage(source.getWidth(), source.getHeight());
     Graphics g = copy.getGraphics();
     g.drawImage(source, 0, 0, TOP | LEFT);

また、上記のテクニックを使用して、イメージの一部コピーを作成することもできます。 この場合、createImage(int, int) メソッドでイメージを作成する際にコピー先矩形サイズを元とは異なる大きさで作成し、drawImage メソッドで描画する際に描画座標を調整して作成します。

PNG イメージ・フォーマット

実装は「PNG(Portable Network Graphics : 可搬性のあるネットワーク・グラフィックス)フォーマット バージョン 1.0」をサポートすることが要求されます。

注釈: このセクションの残りは、MIDP 実装者およびアプリケーション開発者に対するいくつかのアドバイスに加えて、PNG に適合するために必要な最小セットの要約です。 PNG に関する情報は、「PNG(Portable Network Graphics) Specification, Version 1.0 / PNG 仕様書 バージョン 1.0」からまとめました。 このセクションと PNG 仕様書の間に相違がある場合は、常に PNG 仕様書の仕様を支持して解決を図るべきです。

PNG によって規定された「重要」なチャンクは全てサポートしなければなりません。 下記のパラグラフはこれらの重要なチャンクについて記述しています。

IHDR チャンク

MIDP デバイスは IHDR チャンクに含まれる次の値を扱うことができます。

PLTE チャンク

パレットベースのイメージがサポートされます。

IDAT チャンク

イメージ・データはフィルタメソッド 0 によって定義された5つのフィルタ・タイプ(None、Sub、Up、Average、Paeth)のいずれかを使用してエンコードします。

IEND チャンク

このチャンクはイメージが有効であると考えられる順序(あるべき場所)で検出されます。

付随的なチャンクのサポート

PNG は、PNG イメージの中に含めることができる、イメージの解読に影響を与えることのないいくつかの「付随的」なチャンクを定義しています。 MIDP の実装はこれらのうちいずれかのチャンクをサポートするかもしれません(ただし、必須ではありません)。 実装は、サポートしない全ての付随的なチャンクに反応せずに無視すべきです。 現在定義されている付随的なチャンクは以下の通りです。

     bKGD cHRM gAMA hIST iCCP iTXt pHYs
     sBIT sPLT sRGB tEXt tIME tRNS zTXt 

参考資料

Portable Network Graphics Specification. Version 1.0. W3C Recommendation, October 1, 1996. http://www.w3.org/TR/REC-png.html . Also available as RFC 2083, http://www.ietf.org/rfc/rfc2083.txt .


メソッドの概要
static Image createImage(byte[] imagedata, int imageoffset, int imagelength)
          指定されたバイト配列内にに格納されたデータから、指定されたオフセットと長さのデータをデコードして不変タイプのイメージを作成します。
static Image createImage(Image image)
          指定されたイメージから不変タイプのイメージを作成します。
static Image createImage(int width, int height)
          オフスクリーンで描画を行うためのイメージ(可変タイプ)を作成します。
static Image createImage(String name)
          指定された名前のリソースからイメージ・データを取得し、デコードした結果を持つ不変タイプのイメージを返します。
 Graphics getGraphics()
          このイメージに描画を行う新しいグラフィックスオブジェクトを作成します。
 int getHeight()
          イメージの高さをピクセル数で返します。
 int getWidth()
          イメージの幅をピクセル数で返します。
 boolean isMutable()
          このイメージが可変タイプであるかどうかを判定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

createImage

public static Image createImage(int width,
                                int height)

オフスクリーンで描画を行うためのイメージ(可変タイプ)を作成します。 新しく作成されたイメージ内の全てのピクセルは白で塗り潰されています。 イメージの幅および高さはいずれも 0 以上でなければなりません。

パラメータ:
width - 新しく作成するイメージの幅を渡します。
height - 新しく作成するイメージの高さを渡します。
戻り値:
新しく作成したイメージを返します。
例外:
IllegalArgumentException - width あるいは height が不正な場合に throw します。

createImage

public static Image createImage(Image image)

指定されたイメージから不変タイプのイメージを作成します。 指定されたイメージが可変タイプのイメージの場合、イメージをコピーした不変タイプのイメージを作成して返します。 指定されたイメージが不変タイプのイメージの場合、実装は新しいイメージを作成せずに、そのイメージをそのまま返します。

このメソッドは AlertChoiceFormImageItem オブジェクトにオフスクリーンに描画したイメージを設定するのに役立ちます。 アプリケーションは createImage(x, y) メソッドを使用してオフスクリーンを作成し、getGraphics() メソッドで得たグラフィックスオブジェクトを使用して描画を行います。 次にこのメソッドで不変タイプのイメージにコピーし、AlertChoiceFormImageItem オブジェクトに設定することができます。

パラメータ:
image - コピー元のイメージを渡します。
戻り値:
新しく作成した不変タイプのイメージを返します。

createImage

public static Image createImage(String name)
                         throws IOException

指定された名前のリソースからイメージ・データを取得し、デコードした結果を持つ不変タイプのイメージを返します。 パラメータ name に指定する名前は Class.getResourceAsStream(name) によって定義されるようなリソース名です。

パラメータ:
name - サポートしているイメージ・フォーマットのうちの1つのイメージ・データを含んでいるリソースの名前を渡します。
戻り値:
作成したイメージを返します。
例外:
IOException - 指定されたリソースが存在しないか、データの読み出しができないか、イメージ・データがデコードできない場合に throw します。

createImage

public static Image createImage(byte[] imagedata,
                                int imageoffset,
                                int imagelength)

指定されたバイト配列内にに格納されたデータから、指定されたオフセットと長さのデータをデコードして不変タイプのイメージを作成します。 データは PNG のような実装がサポートする、自己認識可能なイメージファイルでなければなりません。

imageoffsetimagelength パラメータは imagedata バイト配列内のデータを指定します。 imageoffset はバイト配列内の使用開始位置を指定します。 つまり、imageoffset は、0imagedata.length - 1 の範囲内でなければなりません。 imagelength は使用するデータのバイト数を指定します。 これは正数でなければならず、imageoffset + imagelengthimagedata.length を超えてはなりません。

このメソッドは永続的な記憶装置やネットワークなどの多様なソースからイメージをロードする場合に使用します。

パラメータ:
imagedata - サポートするイメージ・データを格納したバイト配列を渡します。
imageoffset - バイト配列内のデータの開始位置を渡します。
imagelength - バイト配列内のデータの長さを渡します。
戻り値:
作成したイメージを返します。
例外:
ArrayIndexOutOfBoundsException - imageoffset あるいは imagelength が不正な場合に throw します。
IllegalArgumentException - imagedata のフォーマットに誤りがあるかサポートしていないフォーマットの場合に throw します。

getGraphics

public Graphics getGraphics()

このイメージに描画を行う新しいグラフィックスオブジェクトを作成します。 このメソッドによってグラフィックスオブジェクトを作成できるのは可変タイプのみです。 不変タイプの Image オブジェクトに対してこのメソッドを呼び出すと IllegalStateException を throw します。 Image オブジェクトが可変タイプであるかどうかは isMutable() メソッドで調べることができます。

新しく作成されたグラフィックスオブジェクトは次の特性を持っています。

このメソッドを使用して作成した Graphics オブジェクトの寿命は不定です。 また、オブジェクトは任意のスレッドによっていつでも使用することができます。

戻り値:
a このイメージに描画するためのグラフィックスオブジェクトを返します。
例外:
IllegalStateException - イメージが不変モードの場合に throw します。

getWidth

public int getWidth()

イメージの幅をピクセル数で返します。

戻り値:
イメージの幅を返します。

getHeight

public int getHeight()

イメージの高さをピクセル数で返します。

戻り値:
イメージの高さを返します。

isMutable

public boolean isMutable()

このイメージが可変タイプであるかどうかを判定します。 可変タイプの場合、このオブジェクトの getGraphics() メソッドから得た Graphics オブジェクトによって描画を行うことができます。

戻り値:
可変タイプの場合は true を、そうでなければ false を返します。

Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

このAPIリファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Java Community Process 等とは一切関係ありません。したがってこのAPIリファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本APIリファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカルファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.1 + MIDP 2.0" API Reference はこちらです。