JavaTM Platform
Standard Ed. 6

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 つにパックするピクセル値を扱う abstract ColorModel クラスです。このクラスは、任意の ColorSpace と一緒に使うことができます。ピクセル値に含まれるカラーサンプル数は、ColorSpace の色成分の数と一致する必要があります。アルファサンプルを 1 つ含むことができます。transferType の型のプリミティブ配列のピクセル表現を使うメソッドでは、配列長は常に 1 です。サポートされる転送タイプは、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、および DataBuffer.TYPE_INT です。カラーサンプルとアルファサンプルは、ビットマスクで示されるビット単位で配列の単一の要素に格納されます。各ビットマスクは連続している必要があり、複数のマスクをオーバーラップさせることはできません。同じマスクが、ほかのメソッドによって使用される単一の int ピクセル表現に適用されます。次に、マスクと、カラーサンプルとアルファサンプルの対応関係を示します。

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

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

PackedColorModel のサブクラスは X11 TrueColor に類似した DirectColorModel です。

関連項目:
DirectColorModel, SinglePixelPackedSampleModel, BufferedImage

フィールドの概要
 
クラス java.awt.image.ColorModel から継承されたフィールド
pixel_bits, transferType
 
インタフェース java.awt.Transparency から継承されたフィールド
BITMASK, OPAQUE, TRANSLUCENT
 
コンストラクタの概要
PackedColorModel(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType)
          カラーマスク配列から PackedColorModel を構築します。
PackedColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int trans, int transferType)
          指定したマスクから PackedColorModel を構築します。
 
メソッドの概要
 SampleModel createCompatibleSampleModel(int w, int h)
          この ColorModel と互換性のあるデータレイアウトを持つ、指定された幅と高さの SampleModel を作成します。
 boolean equals(Object obj)
          指定された ObjectPackedColorModel のインスタンスであり、この PackedColorModel と等しいかどうかを判定します。
 WritableRaster getAlphaRaster(WritableRaster raster)
          イメージのアルファチャネルを表現する WritableRaster を、入力された WritableRaster から抽出して返します。
 int getMask(int index)
          指定されたカラーサンプルやアルファサンプルが、ピクセル表現内のどのビット群に格納されているかを示すマスクを返します。
 int[] getMasks()
          ピクセル表現のどのビット群にカラーサンプルとアルファサンプルが格納されているかを示すマスク配列を返します。
 boolean isCompatibleSampleModel(SampleModel sm)
          SampleModel がこの ColorModel と互換性があるかどうかを調べます。
 
クラス java.awt.image.ColorModel から継承されたメソッド
coerceData, createCompatibleWritableRaster, finalize, getAlpha, getAlpha, getBlue, getBlue, getColorSpace, getComponents, getComponents, getComponentSize, getComponentSize, getDataElement, getDataElement, getDataElements, getDataElements, getDataElements, getGreen, getGreen, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRed, getRed, getRGB, getRGB, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, hashCode, isAlphaPremultiplied, isCompatibleRaster, toString
 
クラス java.lang.Object から継承されたメソッド
clone, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

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 がピクセル値のカラーサンプルとアルファサンプルの解釈方法を指定します。boolean 型が true の場合、カラーサンプルはアルファサンプルで乗算されたものと見なされます。透明度 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 がピクセル値のカラーサンプルとアルファサンプルの解釈方法を指定します。boolean 型が true の場合、カラーサンプルはアルファサンプルで乗算されたものと見なされます。透明度 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 を作成します。

オーバーライド:
クラス ColorModel 内の createCompatibleSampleModel
パラメータ:
w - 記述されたイメージデータの領域の幅 (ピクセル数)
h - 記述されたイメージデータの領域の高さ (ピクセル数)
戻り値:
新しく作成された SampleModel
例外:
IllegalArgumentException - w または h が 0 以下である場合
関連項目:
SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel がこの ColorModel と互換性があるかどうかを調べます。smnull の場合、このメソッドは false を返します。

オーバーライド:
クラス ColorModel 内の isCompatibleSampleModel
パラメータ:
sm - 指定された SampleModel、 または null
戻り値:
指定された SampleModel がこの ColorModel と、 互換性がある場合は true、 そうでない場合は false
関連項目:
SampleModel

getAlphaRaster

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

オーバーライド:
クラス ColorModel 内の getAlphaRaster
パラメータ:
raster - イメージが格納されている WritableRaster
戻り値:
raster に格納されたイメージの アルファチャンネルを表す WritableRaster

equals

public boolean equals(Object obj)
指定された ObjectPackedColorModel のインスタンスであり、この PackedColorModel と等しいかどうかを判定します。

オーバーライド:
クラス ColorModel 内の equals
パラメータ:
obj - 等しいかどうかが判定される Object
戻り値:
指定された ObjectPackedColorModel のインスタンスであり、 この PackedColorModel と等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。