public abstract class PixelFormat<T extends Buffer> extends Object
PixelFormat
オブジェクトでは、特定のフォーマットのピクセルについてデータのレイアウトを定義します。修飾子と型 | クラスと説明 |
---|---|
static class |
PixelFormat.Type
PixelFormat によって管理される単一ピクセルの配列内格納形式を記述する列挙。 |
修飾子と型 | メソッドと説明 |
---|---|
static PixelFormat<ByteBuffer> |
createByteIndexedInstance(int[] colors)
ピクセル・レイアウトを記述する
PixelFormat インスタンスを作成します。ここには、指定された参照表(INT_ARGB フォーマットのあらかじめ乗算されていない色値からなる)のインデックスを表す1バイトとしてピクセルが格納されます。 |
static PixelFormat<ByteBuffer> |
createByteIndexedPremultipliedInstance(int[] colors)
ピクセル・レイアウトを記述する
PixelFormat インスタンスを作成します。ここには、指定された参照表(INT_ARGB_PRE フォーマットのあらかじめ乗算された色値からなる)のインデックスを表す1バイトとしてピクセルが格納されます。 |
abstract int |
getArgb(T buf, int x, int y, int scanlineStride)
バッファの指定された座標からピクセル・データを読み取り、それを
INT_ARGB フォーマットの色の32ビット整数表現に変換します。 |
static WritablePixelFormat<ByteBuffer> |
getByteBgraInstance()
連続するバイトにピクセルが格納されたピクセル・レイアウトを記述する、
WritablePixelFormat インスタンスを返します。ここには、あらかじめ乗算されていない成分が、インデックスの小さい順(青、緑、赤、アルファ)に格納されます。 |
static WritablePixelFormat<ByteBuffer> |
getByteBgraPreInstance()
連続するバイトにピクセルが格納されたピクセル・レイアウトを記述する、
WritablePixelFormat インスタンスを返します。ここには、あらかじめ乗算された成分が、インデックスの小さい順(青、緑、赤、アルファ)に格納されます。 |
static PixelFormat<ByteBuffer> |
getByteRgbInstance()
連続するバイトにピクセルが格納されたピクセル・レイアウトを記述する、
PixelFormat インスタンスを返します。ここには、色成分が、インデックスの小さい順(赤、緑、青)に格納されます。 |
static WritablePixelFormat<IntBuffer> |
getIntArgbInstance()
ピクセルが32ビット整数に格納されたピクセル・レイアウトを記述する、
WritablePixelFormat インスタンスを返します。ここには、あらかじめ乗算されていない成分が、MSbからLSbの順序(アルファ、赤、緑、青)で格納されます。 |
static WritablePixelFormat<IntBuffer> |
getIntArgbPreInstance()
ピクセルが32ビット整数に格納されたピクセル・レイアウトを記述する、
WritablePixelFormat インスタンスを返します。ここには、あらかじめ乗算された成分が、MSbからLSbの順序(アルファ、赤、緑、青)で格納されます。 |
PixelFormat.Type |
getType()
この
PixelFormat オブジェクトによって管理されるピクセルの格納形式を表す列挙を返します。 |
abstract boolean |
isPremultiplied()
より効率的にブレンド計算を行うために、このフォーマットでデコード(またはエンコード)された色成分がアルファ成分によってあらかじめ乗算されている場合にtrueを返します。
|
abstract boolean |
isWritable()
この
PixelFormat オブジェクトが色情報をピクセル表現に変換できる場合にtrueを返します。 |
public static WritablePixelFormat<IntBuffer> getIntArgbInstance()
WritablePixelFormat
インスタンスを返します。ここには、あらかじめ乗算されていない成分が、MSbからLSbの順序(アルファ、赤、緑、青)で格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int pixel = array[rowstart + x]; int alpha = ((pixel >> 24) & 0xff); int red = ((pixel >> 16) & 0xff); int green = ((pixel >> 8) & 0xff); int blue = ((pixel ) & 0xff);
WritabelPixelFormat<IntBuffer>
public static WritablePixelFormat<IntBuffer> getIntArgbPreInstance()
WritablePixelFormat
インスタンスを返します。ここには、あらかじめ乗算された成分が、MSbからLSbの順序(アルファ、赤、緑、青)で格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int pixel = array[rowstart + x]; int alpha = ((pixel >> 24) & 0xff); int red = ((pixel >> 16) & 0xff); int green = ((pixel >> 8) & 0xff); int blue = ((pixel ) & 0xff);
WritabelPixelFormat<IntBuffer>
public static WritablePixelFormat<ByteBuffer> getByteBgraInstance()
WritablePixelFormat
インスタンスを返します。ここには、あらかじめ乗算されていない成分が、インデックスの小さい順(青、緑、赤、アルファ)に格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int i = rowstart + x * 4; int blue = (array[i+0] & 0xff); int green = (array[i+1] & 0xff); int red = (array[i+2] & 0xff); int alpha = (array[i+3] & 0xff);
WritablePixelFormat<ByteBuffer>
public static WritablePixelFormat<ByteBuffer> getByteBgraPreInstance()
WritablePixelFormat
インスタンスを返します。ここには、あらかじめ乗算された成分が、インデックスの小さい順(青、緑、赤、アルファ)に格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int i = rowstart + x * 4; int blue = (array[i+0] & 0xff); int green = (array[i+1] & 0xff); int red = (array[i+2] & 0xff); int alpha = (array[i+3] & 0xff);
WritablePixelFormat<ByteBuffer>
public static PixelFormat<ByteBuffer> getByteRgbInstance()
PixelFormat
インスタンスを返します。ここには、色成分が、インデックスの小さい順(赤、緑、青)に格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int i = rowstart + x * 3; int red = (array[i+0] & 0xff); int green = (array[i+1] & 0xff); int blue = (array[i+2] & 0xff);
PixelFormat<ByteBuffer>
public static PixelFormat<ByteBuffer> createByteIndexedPremultipliedInstance(int[] colors)
PixelFormat
インスタンスを作成します。ここには、指定された参照表(INT_ARGB_PRE
フォーマットのあらかじめ乗算された色値からなる)のインデックスを表す1バイトとしてピクセルが格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int pixel = array[rowstart + x] & 0xff; int argb = colors[pixel]; int alpha = ((argb >> 24) & 0xff); int red = ((argb >> 16) & 0xff); int green = ((argb >> 8) & 0xff); int blue = ((argb ) & 0xff);
colors
- INT_ARGB_PRE
フォーマットの32ビット色値のint[]
配列PixelFormat<ByteBuffer>
public static PixelFormat<ByteBuffer> createByteIndexedInstance(int[] colors)
PixelFormat
インスタンスを作成します。ここには、指定された参照表(INT_ARGB
フォーマットのあらかじめ乗算されていない色値からなる)のインデックスを表す1バイトとしてピクセルが格納されます。
このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。
int pixel = array[rowstart + x] & 0xff; int argb = colors[pixel]; int alpha = ((argb >> 24) & 0xff); int red = ((argb >> 16) & 0xff); int green = ((argb >> 8) & 0xff); int blue = ((argb ) & 0xff);
colors
- INT_ARGB
フォーマットの32ビット色値のint[]
配列PixelFormat<ByteBuffer>
public PixelFormat.Type getType()
PixelFormat
オブジェクトによって管理されるピクセルの格納形式を表す列挙を返します。Type
列挙public abstract boolean isWritable()
PixelFormat
オブジェクトが色情報をピクセル表現に変換できる場合にtrueを返します。PixelFormat
が色をピクセル・データに変換できる場合はtruepublic abstract boolean isPremultiplied()
public abstract int getArgb(T buf, int x, int y, int scanlineStride)
INT_ARGB
フォーマットの色の32ビット整数表現に変換します。32ビット整数は、ARGBの最上位バイトから最下位バイトへの順序で、個別の8ビット・フィールドに4つの色成分を含みます。buf.get(0)
によって座標(0, 0)
のピクセルのピクセル情報が返されるように、バッファの位置はピクセル・データの先頭に設定する必要があります。scanlineStride
パラメータにより、ある行の先頭のピクセル・データから、すぐ後の行(次に上のY座標)の先頭のピクセル・データへの距離が定義されます。通常、scanlineStride
は、ピクセルごとのデータ要素の数(整数およびインデックス付きフォーマットの場合は1、バイト・フォーマットの場合は3または4)で乗算されたイメージの幅と同じですが、一部のイメージには、位置合せなどの目的で行間にさらに大きい余白がある場合があります。
色成分は、次のサンプル・コードを使用して、返された整数から抽出できます。
int alpha = ((retval >> 24) & 0xff); int red = ((retval >> 16) & 0xff); int green = ((retval >> 8) & 0xff); int blue = ((retval ) & 0xff);
buf
- ピクセル・データのバッファx
- 読み取るピクセルのX座標y
- 読み取るピクセルのY座標scanlineStride
- バッファ内で隣接するピクセルの行同士の先頭と先頭の間にあるバッファ要素の数INT_ARGB
ピクセル・フォーマットと同様のフォーマットの、ピクセルの色を示す32ビット値Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.