モジュール javafx.graphics
パッケージ javafx.scene.image

クラスPixelFormat<T extends Buffer>

  • 直系の既知のサブクラス:
    WritablePixelFormat


    public abstract class PixelFormat<T extends Buffer>
    extends Object
    PixelFormatオブジェクトでは、特定のフォーマットのピクセルについてデータのレイアウトを定義します。
    導入されたバージョン:
    JavaFX 2.2
    • ネストされたクラスのサマリー

      ネストされたクラス 
      修飾子と型 クラス 説明
      static class  PixelFormat.Type
      PixelFormatによって管理される単一ピクセルの配列内格納形式を記述する列挙。
    • メソッドのサマリー

      すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      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を返します。
    • メソッドの詳細

      • getIntArgbInstance

        public static WritablePixelFormat<IntBuffer> getIntArgbInstance​()
        ピクセルが32ビット整数に格納されたピクセル・レイアウトを記述する、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>
      • getIntArgbPreInstance

        public static WritablePixelFormat<IntBuffer> getIntArgbPreInstance​()
        ピクセルが32ビット整数に格納されたピクセル・レイアウトを記述する、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>
      • getByteBgraInstance

        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>
      • getByteBgraPreInstance

        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>
      • getByteRgbInstance

        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>
      • createByteIndexedPremultipliedInstance

        public static PixelFormat<ByteBuffer> createByteIndexedPremultipliedInstance​(int[] colors)
        ピクセル・レイアウトを記述するPixelFormatインスタンスを作成します。ここには、指定された参照表(INT_ARGB_PREフォーマットのあらかじめ乗算された色値からなる)のインデックスを表す1バイトとしてピクセルが格納されます。

        このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。

        
             int pixel = array[rowstart + x] &amp; 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>
      • createByteIndexedInstance

        public static PixelFormat<ByteBuffer> createByteIndexedInstance​(int[] colors)
        ピクセル・レイアウトを記述するPixelFormatインスタンスを作成します。ここには、指定された参照表(INT_ARGBフォーマットのあらかじめ乗算されていない色値からなる)のインデックスを表す1バイトとしてピクセルが格納されます。

        このフォーマットのピクセルは、次のサンプル・コードを使用してデコードできます。

        
             int pixel = array[rowstart + x] &amp; 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>
      • getType

        public PixelFormat.Type getType​()
        このPixelFormatオブジェクトによって管理されるピクセルの格納形式を表す列挙を返します。
        戻り値:
        ピクセルのType列挙
      • isWritable

        public abstract boolean isWritable​()
        このPixelFormatオブジェクトが色情報をピクセル表現に変換できる場合にtrueを返します。
        戻り値:
        このPixelFormatが色をピクセル・データに変換できる場合はtrue
      • isPremultiplied

        public abstract boolean isPremultiplied​()
        より効率的にブレンド計算を行うために、このフォーマットでデコード(またはエンコード)された色成分がアルファ成分によってあらかじめ乗算されている場合にtrueを返します。
        戻り値:
        管理されている色成分がアルファによってあらかじめ乗算されている場合はtrue
      • getArgb

        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ビット値