モジュール java.desktop
パッケージ java.awt.image

クラスPackedColorModel

java.lang.Object
java.awt.image.ColorModel
java.awt.image.PackedColorModel
すべての実装されたインタフェース:
Transparency
直系の既知のサブクラス:
DirectColorModel

public abstract class PackedColorModel
extends ColorModel
PackedColorModelクラスは、色とアルファの情報を個別のサンプルとして表し、1つのピクセルのすべてのサンプルをint、short、またはbyte型の数で1つにパックするピクセル値を扱う抽象ColorModelクラスです。 このクラスは、任意のColorSpaceと一緒に使うことができます。 ピクセル値に含まれるカラー・サンプル数は、ColorSpaceの色成分の数と一致する必要があります。 アルファ・サンプルを1つ含むことができます。 transferTypeの型のプリミティブ配列のピクセル表現を使うメソッドでは、配列長は常に1です。 サポートされる転送タイプは、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、およびDataBuffer.TYPE_INTです。 カラー・サンプルとアルファ・サンプルは、ビット・マスクで示されるビット単位で配列の単一の要素に格納されます。 各ビット・マスクは連続している必要があり、複数のマスクをオーバーラップさせることはできません。 同じマスクが、ほかのメソッドによって使用される単一のintピクセル表現に適用されます。 次に、マスクと、カラー・サンプルとアルファ・サンプルの対応関係を示します。
  • マスクは0からgetNumComponents - 1までのインデックスで識別される。
  • 最初のインデックスgetNumColorComponentsは、カラー・サンプルを表す。
  • アルファ・サンプルがある場合は、最後のインデックスに対応する。
  • カラー・インデックスの順序はColorSpaceが指定する。 通常はカラー・スペース・タイプの名前を反映する。たとえば、TYPE_RGBの場合、インデックス0は赤、インデックス1は緑、インデックス2は青に対応する。

表示または処理のためにピクセル値から色成分やアルファ成分に変換するときには、サンプルと成分は1対1の対応になります。 PackedColorModelは一般に、パックされたサンプルを定義するのにマスクを使うイメージ・データとともに使用します。 たとえば、PackedColorModelSinglePixelPackedSampleModelと組み合わせて使用してBufferedImageを作成できます。 通常、SampleModelColorModelが使うマスクは同じものです。 ただし、マスクが異なる場合のピクセル・データの色解釈は、ColorModelのマスクに従って行われます。

このクラスで使うピクセル値は常に単一のintとして表現できるので、単一のintピクセル表現はこのクラスのすべてのオブジェクトで有効です。 このため、この表現を使うメソッドは、無効なピクセル値が原因でIllegalArgumentExceptionをスローすることはありません。

PackedColorModelのサブクラスはX11 TrueColorビジュアルと類似したDirectColorModelです。

関連項目:
DirectColorModelSinglePixelPackedSampleModelBufferedImage
  • コンストラクタの詳細

    • PackedColorModel

      public PackedColorModel​(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType)
      カラー・マスク配列からPackedColorModelを構築します。この配列は、各カラー・サンプル、およびアルファ・マスクが、intピクセル表現のどのビット群に格納されているかを指定します。 色成分は、指定されたColorSpaceに入ります。 colorMaskArrayの長さは、ColorSpace内の成分数になります。 各マスク内のすべてのビットは連続していて、intピクセル表現の指定桁数の最下位ビットに収まる必要があります。 alphaMaskが0の場合は、アルファはありません。 アルファがある場合は、boolean型のisAlphaPremultipliedがピクセル値のカラー・サンプルとアルファ・サンプルの解釈方法を指定します。 booleantrueの場合は、カラー・サンプルはアルファ・サンプルと乗算されたと見なされます。 透明度transは、このカラー・モデルで表現できるアルファ値を指定します。 転送タイプは、ピクセル値を表現するために使うプリミティブ配列の型です。
      パラメータ:
      space - 指定されたColorSpace
      bits - ピクセル値のビット数
      colorMaskArray - ピクセルのビット値を表すマスクを指定する配列。ピクセル値は色成分を表す
      alphaMask - ピクセルのビット値を表すマスクを指定する。ピクセル値はアルファ成分を表す
      isAlphaPremultiplied - カラー・サンプルがアルファ・サンプルによってあらかじめ乗算されている場合はtrue、そうでない場合はfalse
      trans - このカラー・モデルで表すことができるアルファ値を指定する
      transferType - ピクセル値を表すのに使用される配列の型
      例外:
      IllegalArgumentException - bitsが1より小さいか32より大きい場合
    • PackedColorModel

      public PackedColorModel​(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int trans, int transferType)
      指定したマスクからPackedColorModelを構築します。マスクは、アルファ、赤、緑、青の各カラー・サンプルが、intピクセル表現のどのビット群に格納されているかを指定します。 色成分は、ColorSpace.TYPE_RGBタイプの指定されたColorSpaceに入ります。 各マスク内のすべてのビットは連続していて、intピクセル表現の指定桁数の最下位ビットに収まる必要があります。 amaskが0の場合は、アルファはありません。 アルファがある場合は、boolean型のisAlphaPremultipliedがピクセル値のカラー・サンプルとアルファ・サンプルの解釈方法を指定します。 booleantrueの場合は、カラー・サンプルはアルファ・サンプルと乗算されたと見なされます。 透明度transは、このカラー・モデルで表現できるアルファ値を指定します。 転送タイプは、ピクセル値を表現するために使うプリミティブ配列の型です。
      パラメータ:
      space - 指定されたColorSpace
      bits - ピクセル値のビット数
      rmask - ピクセルのビット値を表すマスクを指定する。ピクセル値は赤の色成分を表す
      gmask - ピクセルのビット値を表すマスクを指定する。ピクセル値は緑の色成分を表す
      bmask - ピクセルのビット値を表すマスクを指定する。ピクセル値は青の色成分を表す
      amask - ピクセルのビット値を表すマスクを指定する。ピクセル値はアルファ成分を表す
      isAlphaPremultiplied - カラー・サンプルがアルファ・サンプルによってあらかじめ乗算されている場合はtrue、そうでない場合はfalse
      trans - このカラー・モデルで表すことができるアルファ値を指定する
      transferType - ピクセル値を表すのに使用される配列の型
      例外:
      IllegalArgumentException - spaceがTYPE_RGB空間でない場合
      関連項目:
      ColorSpace
  • メソッドの詳細

    • getMask

      public final int getMask​(int index)
      指定されたカラー・サンプルやアルファ・サンプルが、ピクセル表現内のどのビット群に格納されているかを示すマスクを返します。 カラー・サンプルでは、indexはカラー・スペースのカラー・サンプル名の配置に対応します。 したがって、CMYK ColorSpaceでは、indexが0であればCyanに、indexが1であればMagentaに対応します。 アルファがある場合、アルファindexは次のようになります。
            alphaIndex = numComponents() - 1;
       
      パラメータ:
      index - 指定されたカラー・サンプルまたはアルファ・サンプル
      戻り値:
      intピクセル表現のどのビットがindexが指定するカラー・サンプルまたはアルファ・サンプルを保持しているかを示すマスク。
      例外:
      ArrayIndexOutOfBoundsException - indexがこのPackedColorModelの成分数マイナス1より大きいか、indexが0より小さい場合
    • getMasks

      public final int[] getMasks()
      ピクセル表現のどのビット群にカラー・サンプルとアルファ・サンプルが格納されているかを示すマスク配列を返します。
      戻り値:
      intピクセル表現のどのビット群に、カラー・サンプルまたはアルファ・サンプルが格納されているかを示すマスク配列。
    • createCompatibleSampleModel

      public SampleModel createCompatibleSampleModel​(int w, int h)
      このColorModelと互換性のあるデータ・レイアウトを持つ、指定された幅と高さのSampleModelを作成します。
      オーバーライド:
      createCompatibleSampleModel、クラス: ColorModel
      パラメータ:
      w - 記述されたイメージ・データの領域の幅(ピクセル単位)
      h - 記述されたイメージ・データの領域の高さ(ピクセル単位)
      戻り値:
      新しく生成されたSampleModel
      例外:
      IllegalArgumentException - wまたはhが0以下である場合
      関連項目:
      SampleModel
    • isCompatibleSampleModel

      public boolean isCompatibleSampleModel​(SampleModel sm)
      指定されたSampleModelがこのColorModelと互換性があるかどうかを調べます。 smnullの場合、このメソッドはfalseを返します。
      オーバーライド:
      isCompatibleSampleModel、クラス: ColorModel
      パラメータ:
      sm - 指定されたSampleModel、またはnull
      戻り値:
      指定されたSampleModelがこのColorModelと互換性がある場合はtrue、それ以外の場合はfalse
      関連項目:
      SampleModel
    • getAlphaRaster

      public WritableRaster getAlphaRaster​(WritableRaster raster)
      イメージのアルファ・チャネルを表現するWritableRasterを、入力されたWritableRasterから抽出して返します。 このメソッドは、このColorModelに関連したWritableRasterオブジェクトにアルファ・バンドがあれば、そのアルファ・バンドをイメージ・データの最終バンドとして格納していると見なします。 このColorModelに関連した空間アルファ・チャネルがほかにない場合は、nullを返します。 このメソッドは新しいWritableRasterを作成しますが、データ配列は共有することになります。
      オーバーライド:
      getAlphaRaster、クラス: ColorModel
      パラメータ:
      raster - イメージが格納されているWritableRaster
      戻り値:
      rasterに格納されたイメージのアルファ・チャンネルを表すWritableRaster
    • equals

      public boolean equals​(Object obj)
      指定されたObjectPackedColorModelのインスタンスで、このPackedColorModelと等しいかどうかを判定します。
      オーバーライド:
      equals、クラス: ColorModel
      パラメータ:
      obj - 等しいかどうかが判定されるObject
      戻り値:
      指定されたObjectPackedColorModelのインスタンスで、このPackedColorModelに等しい場合はtrue、それ以外の場合はfalse
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      public int hashCode()
      このPackedColorModelのハッシュ・コードを返します。
      オーバーライド:
      クラスColorModelhashCode
      戻り値:
      このPackedColorModelのハッシュ・コード。
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)