|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.microedition.lcdui.Image
public class Image
このクラスはグラフィカルなイメージ・データを保持するために使用します。
Image
オブジェクトはディスプレイ装置とは無関係に存在します。
それらはオフスクリーン・メモリに存在し、アプリケーションが明示的に表示するように記述する(Canvas
オブジェクトの paint(Graphics)
メソッド内において)か、Alert
および Form
スクリーンに Image
オブジェクトを設定し、そのスクリーンがカレントに設定されるまでディスプレイには表示されません。
Image
オブジェクトはそれが作成された方法に依存して不変タイプと可変タイプのいずれかになります。
不変タイプのイメージは、一般的にリソースバンドルやファイル、ネットワーク等から固定的なイメージ・データをロードして作成されます。
このタイプのイメージは作成された後に内容を変更することはできません。
可変タイプのイメージはオフスクリーン・メモリの中に作成されます。
アプリケーションはこのタイプの Image
オブジェクトに対して任意の描画を行うことができます。
Alert
、Choice
、Form
、ImageItem
オブジェクトに設定することができる 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(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 チャンクに含まれる次の値を扱うことができます。
0
の Deflate のみをサポートします。
これは JAR ファイルに使用されているのと同じ圧縮方法です。
このため、実装によっては展開するコードを JAR ファイルの読み出しを行うコードと共有することがあります。
0
)を定義しています。
これは、Deflate アルゴリズムがイメージ内の空間の類似性を利用することを可能にするため、フィルタリングは最適な圧縮に必須です。
このため、MIDP デバイスはフィルタメソッド 0
によって定義された5つのフィルタ・タイプを全てサポートしています。
0
(None)あるいはインターレース方式 1
(Adam7)のどちらか一方によって符号化された PNG イメージを読み出すことができます。
MIDP においてロードされたイメージは静止画であるため、イメージのレンダリングによってオーバーラップが発生することはありません。
このため、アプリケーションにとってインターレース方式1を使用する利点はまったくありません。
インターレース・イメージの読み込みサポートは、PNG が持つ互換性の確保および既に入手済みのインターレース・イメージを開発者が使用できるようにする利便性のために必要です。
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 |
メソッドの詳細 |
---|
public static Image createImage(int width, int height)
オフスクリーンで描画を行うためのイメージ(可変タイプ)を作成します。
新しく作成されたイメージ内の全てのピクセルは白で塗り潰されています。
イメージの幅および高さはいずれも 0
以上でなければなりません。
width
- 新しく作成するイメージの幅を渡します。height
- 新しく作成するイメージの高さを渡します。
IllegalArgumentException
- width
あるいは height
が不正な場合に throw します。public static Image createImage(Image image)
指定されたイメージから不変タイプのイメージを作成します。 指定されたイメージが可変タイプのイメージの場合、イメージをコピーした不変タイプのイメージを作成して返します。 指定されたイメージが不変タイプのイメージの場合、実装は新しいイメージを作成せずに、そのイメージをそのまま返します。
このメソッドは Alert
、Choice
、Form
、ImageItem
オブジェクトにオフスクリーンに描画したイメージを設定するのに役立ちます。
アプリケーションは createImage(x, y)
メソッドを使用してオフスクリーンを作成し、getGraphics()
メソッドで得たグラフィックスオブジェクトを使用して描画を行います。
次にこのメソッドで不変タイプのイメージにコピーし、Alert
、Choice
、Form
、ImageItem
オブジェクトに設定することができます。
image
- コピー元のイメージを渡します。
public static Image createImage(String name) throws IOException
指定された名前のリソースからイメージ・データを取得し、デコードした結果を持つ不変タイプのイメージを返します。
パラメータ name
に指定する名前は Class.getResourceAsStream(name)
によって定義されるようなリソース名です。
name
- サポートしているイメージ・フォーマットのうちの1つのイメージ・データを含んでいるリソースの名前を渡します。
IOException
- 指定されたリソースが存在しないか、データの読み出しができないか、イメージ・データがデコードできない場合に throw します。public static Image createImage(byte[] imagedata, int imageoffset, int imagelength)
指定されたバイト配列内にに格納されたデータから、指定されたオフセットと長さのデータをデコードして不変タイプのイメージを作成します。 データは PNG のような実装がサポートする、自己認識可能なイメージファイルでなければなりません。
imageoffset
と imagelength
パラメータは imagedata
バイト配列内のデータを指定します。
imageoffset
はバイト配列内の使用開始位置を指定します。
つまり、imageoffset
は、0
imagedata.length - 1 の範囲内でなければなりません。
imagelength
は使用するデータのバイト数を指定します。
これは正数でなければならず、imageoffset + imagelength
が imagedata.length
を超えてはなりません。
このメソッドは永続的な記憶装置やネットワークなどの多様なソースからイメージをロードする場合に使用します。
imagedata
- サポートするイメージ・データを格納したバイト配列を渡します。imageoffset
- バイト配列内のデータの開始位置を渡します。imagelength
- バイト配列内のデータの長さを渡します。
ArrayIndexOutOfBoundsException
- imageoffset
あるいは imagelength
が不正な場合に throw します。
IllegalArgumentException
- imagedata
のフォーマットに誤りがあるかサポートしていないフォーマットの場合に throw します。public Graphics getGraphics()
このイメージに描画を行う新しいグラフィックスオブジェクトを作成します。
このメソッドによってグラフィックスオブジェクトを作成できるのは可変タイプのみです。
不変タイプの Image
オブジェクトに対してこのメソッドを呼び出すと IllegalStateException
を throw します。
Image
オブジェクトが可変タイプであるかどうかは isMutable()
メソッドで調べることができます。
新しく作成されたグラフィックスオブジェクトは次の特性を持っています。
Image
オブジェクトです。
Font
クラスの getDefaultFont()
メソッドで返されるフォントと同一です。
SOLID
です。
このメソッドを使用して作成した Graphics
オブジェクトの寿命は不定です。
また、オブジェクトは任意のスレッドによっていつでも使用することができます。
IllegalStateException
- イメージが不変モードの場合に throw します。public int getWidth()
イメージの幅をピクセル数で返します。
public int getHeight()
イメージの高さをピクセル数で返します。
public boolean isMutable()
このイメージが可変タイプであるかどうかを判定します。
可変タイプの場合、このオブジェクトの getGraphics()
メソッドから得た Graphics
オブジェクトによって描画を行うことができます。
true
を、そうでなければ false
を返します。
|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |