ColorMatrix ColorMatrix ColorMatrix ColorMatrix Class

定義

RGBAW 空間の座標を含む 5 x 5 の行列を定義します。Defines a 5 x 5 matrix that contains the coordinates for the RGBAW space. ImageAttributes クラスのいくつかのメソッドは、カラー行列を使用してイメージの色を調整します。Several methods of the ImageAttributes class adjust image colors by using a color matrix. このクラスは継承できません。This class cannot be inherited.

public ref class ColorMatrix sealed
public sealed class ColorMatrix
type ColorMatrix = class
Public NotInheritable Class ColorMatrix
継承
ColorMatrixColorMatrixColorMatrixColorMatrix

次の例では、1つの色 (0.2、0.0、0.4、1.0) のイメージを取得し、前の段落で説明した変換を適用します。The following example takes an image that is all one color (0.2, 0.0, 0.4, 1.0) and applies the transformation described in the preceding paragraphs.

次の図は、左側にある元の画像と右側の変換された画像を示しています。The following illustration shows the original image on the left and the transformed image on the right.

色Colors

次の例のコードでは、次の手順を使用して、色の色の色を実行します。The code in the following example uses the following steps to perform the recoloring:

  1. オブジェクトをColorMatrix初期化します。Initialize a ColorMatrix object.

  2. オブジェクトを作成し、オブジェクトColorMatrixSetColorMatrix ImageAttributesメソッドにオブジェクトを渡します。 ImageAttributesCreate an ImageAttributes object and pass the ColorMatrix object to the SetColorMatrix method of the ImageAttributes object.

  3. オブジェクトをオブジェクトGraphicsDrawImageメソッドに渡します。 ImageAttributesPass the ImageAttributes object to the DrawImage method of a Graphics object.

前の例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The preceding example is designed for use with Windows Forms, and it requires PaintEventArgs e, which is a parameter of the Paint event handler

Image image = new Bitmap("InputColor.bmp");
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;

float[][] colorMatrixElements = { 
   new float[] {2,  0,  0,  0, 0},        // red scaling factor of 2
   new float[] {0,  1,  0,  0, 0},        // green scaling factor of 1
   new float[] {0,  0,  1,  0, 0},        // blue scaling factor of 1
   new float[] {0,  0,  0,  1, 0},        // alpha scaling factor of 1
   new float[] {.2f, .2f, .2f, 0, 1}};    // three translations of 0.2

ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);

imageAttributes.SetColorMatrix(
   colorMatrix,
   ColorMatrixFlag.Default,
   ColorAdjustType.Bitmap);

e.Graphics.DrawImage(image, 10, 10);

e.Graphics.DrawImage(
   image,
   new Rectangle(120, 10, width, height),  // destination rectangle 
   0, 0,        // upper-left corner of source rectangle 
   width,       // width of source rectangle
   height,      // height of source rectangle
   GraphicsUnit.Pixel,
   imageAttributes);
Dim image As New Bitmap("InputColor.bmp")
Dim imageAttributes As New ImageAttributes()
Dim width As Integer = image.Width
Dim height As Integer = image.Height

' The following matrix consists of the following transformations:
' red scaling factor of 2
' green scaling factor of 1
' blue scaling factor of 1
' alpha scaling factor of 1
' three translations of 0.2
Dim colorMatrixElements As Single()() = { _
   New Single() {2, 0, 0, 0, 0}, _
   New Single() {0, 1, 0, 0, 0}, _
   New Single() {0, 0, 1, 0, 0}, _
   New Single() {0, 0, 0, 1, 0}, _
   New Single() {0.2F, 0.2F, 0.2F, 0, 1}}

Dim colorMatrix As New ColorMatrix(colorMatrixElements)

imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)

e.Graphics.DrawImage(image, 10, 10)

e.Graphics.DrawImage( _
   image, _
   New Rectangle(120, 10, width, height), _
   0, _
   0, _
   width, _
   height, _
   GraphicsUnit.Pixel, _
   imageAttributes)

注釈

行列係数は、ARGB 同種値の変換に使用される 5 x 5 線形変換を構成します。The matrix coefficients constitute a 5 x 5 linear transformation that is used for transforming ARGB homogeneous values. たとえば、ARGB ベクターは、赤、緑、青、アルファ、w として表されます。 w は常に1です。For example, an ARGB vector is represented as red, green, blue, alpha and w, where w is always 1.

たとえば、色 (0.2、0.0、0.4、1.0) で開始し、次の変換を適用するとします。For example, suppose you want to start with the color (0.2, 0.0, 0.4, 1.0) and apply the following transformations:

  1. 赤のコンポーネントを2倍にするDouble the red component

  2. 赤、緑、および青のコンポーネントに0.2 を追加するAdd 0.2 to the red, green, and blue components

次の行列乗算では、変換のペアを一覧表示された順序で実行します。The following matrix multiplication will perform the pair of transformations in the order listed.

![色の色]を(~/add/media/recoloring01.gif "色の色")をRecoloring

カラー行列の要素は、行と列によってインデックスが作成されます (0 から始まる)。The elements of a color matrix are indexed (zero-based) by row and then column. たとえば、マトリックス M の5番目の行と3番目の列のエントリは、M [4] [2] によって示されます。For example, the entry in the fifth row and third column of matrix M is denoted by M[4][2].

次の図に示すように、5×5の id 行列は対角線に1つ、他のすべての場所で0になります。The 5×5 identity matrix (shown in the following illustration) has 1s on the diagonal and 0s everywhere else. Id 行列によってカラーベクターを乗算した場合、カラーベクターは変わりません。If you multiply a color vector by the identity matrix, the color vector does not change. カラー変換のマトリックスを作成する便利な方法は、id マトリックスから開始し、必要な変換を生成する小さな変更を行うことです。A convenient way to form the matrix of a color transformation is to start with the identity matrix and make a small change that produces the desired transformation.

![色の色]を(~/add/media/recoloring02.gif "色の色")をRecoloring

マトリックスと変換の詳細については、「座標系と変換」を参照してください。For a more detailed discussion of matrices and transformations, see Coordinate Systems and Transformations.

コンストラクター

ColorMatrix() ColorMatrix() ColorMatrix() ColorMatrix()

ColorMatrix クラスの新しいインスタンスを初期化します。Initializes a new instance of the ColorMatrix class.

ColorMatrix(Single[][]) ColorMatrix(Single[][]) ColorMatrix(Single[][]) ColorMatrix(Single[][])

指定した行列 newColorMatrix の要素を使用して、ColorMatrix クラスの新しいインスタンスを初期化します。Initializes a new instance of the ColorMatrix class using the elements in the specified matrix newColorMatrix.

プロパティ

Item[Int32, Int32] Item[Int32, Int32] Item[Int32, Int32] Item[Int32, Int32]

ColorMatrix で指定された行と列にある要素を取得または設定します。Gets or sets the element at the specified row and column in the ColorMatrix.

Matrix00 Matrix00 Matrix00 Matrix00

この ColorMatrix の第 0 (ゼロ) 行および第 0 列にある要素を取得または設定します。Gets or sets the element at the 0 (zero) row and 0 column of this ColorMatrix.

Matrix01 Matrix01 Matrix01 Matrix01

この ColorMatrix の第 0 (ゼロ) 行および第 1 列にある要素を取得または設定します。Gets or sets the element at the 0 (zero) row and first column of this ColorMatrix.

Matrix02 Matrix02 Matrix02 Matrix02

この ColorMatrix の第 0 (ゼロ) 行および第 2 列にある要素を取得または設定します。Gets or sets the element at the 0 (zero) row and second column of this ColorMatrix.

Matrix03 Matrix03 Matrix03 Matrix03

この ColorMatrix の第 0 (ゼロ) 行および第 3 列にある要素を取得または設定します。Gets or sets the element at the 0 (zero) row and third column of this ColorMatrix. アルファ要素を表します。Represents the alpha component.

Matrix04 Matrix04 Matrix04 Matrix04

この ColorMatrix の第 0 (ゼロ) 行および第 4 列にある要素を取得または設定します。Gets or sets the element at the 0 (zero) row and fourth column of this ColorMatrix.

Matrix10 Matrix10 Matrix10 Matrix10

この ColorMatrix の第 1 行および第 0 (ゼロ) 列にある要素を取得または設定します。Gets or sets the element at the first row and 0 (zero) column of this ColorMatrix.

Matrix11 Matrix11 Matrix11 Matrix11

この ColorMatrix の第 1 行および第 1 列にある要素を取得または設定します。Gets or sets the element at the first row and first column of this ColorMatrix.

Matrix12 Matrix12 Matrix12 Matrix12

この ColorMatrix の第 1 行および第 2 列にある要素を取得または設定します。Gets or sets the element at the first row and second column of this ColorMatrix.

Matrix13 Matrix13 Matrix13 Matrix13

この ColorMatrix の第 1 行および第 3 列にある要素を取得または設定します。Gets or sets the element at the first row and third column of this ColorMatrix. アルファ要素を表します。Represents the alpha component.

Matrix14 Matrix14 Matrix14 Matrix14

この ColorMatrix の第 1 行および第 4 列にある要素を取得または設定します。Gets or sets the element at the first row and fourth column of this ColorMatrix.

Matrix20 Matrix20 Matrix20 Matrix20

この ColorMatrix の第 2 行および第 0 (ゼロ) 列にある要素を取得または設定します。Gets or sets the element at the second row and 0 (zero) column of this ColorMatrix.

Matrix21 Matrix21 Matrix21 Matrix21

この ColorMatrix の第 2 行および第 1 列にある要素を取得または設定します。Gets or sets the element at the second row and first column of this ColorMatrix.

Matrix22 Matrix22 Matrix22 Matrix22

この ColorMatrix の第 2 行および第 2 列にある要素を取得または設定します。Gets or sets the element at the second row and second column of this ColorMatrix.

Matrix23 Matrix23 Matrix23 Matrix23

この ColorMatrix の第 2 行および第 3 列にある要素を取得または設定します。Gets or sets the element at the second row and third column of this ColorMatrix.

Matrix24 Matrix24 Matrix24 Matrix24

この ColorMatrix の第 2 行および第 4 列にある要素を取得または設定します。Gets or sets the element at the second row and fourth column of this ColorMatrix.

Matrix30 Matrix30 Matrix30 Matrix30

この ColorMatrix の第 3 行および第 0 (ゼロ) 列にある要素を取得または設定します。Gets or sets the element at the third row and 0 (zero) column of this ColorMatrix.

Matrix31 Matrix31 Matrix31 Matrix31

この ColorMatrix の第 3 行および第 1 列にある要素を取得または設定します。Gets or sets the element at the third row and first column of this ColorMatrix.

Matrix32 Matrix32 Matrix32 Matrix32

この ColorMatrix の第 3 行および第 2 列にある要素を取得または設定します。Gets or sets the element at the third row and second column of this ColorMatrix.

Matrix33 Matrix33 Matrix33 Matrix33

この ColorMatrix の第 3 行および第 3 列にある要素を取得または設定します。Gets or sets the element at the third row and third column of this ColorMatrix. アルファ要素を表します。Represents the alpha component.

Matrix34 Matrix34 Matrix34 Matrix34

この ColorMatrix の第 3 行および第 4 列にある要素を取得または設定します。Gets or sets the element at the third row and fourth column of this ColorMatrix.

Matrix40 Matrix40 Matrix40 Matrix40

この ColorMatrix の第 4 行および第 0 (ゼロ) 列にある要素を取得または設定します。Gets or sets the element at the fourth row and 0 (zero) column of this ColorMatrix.

Matrix41 Matrix41 Matrix41 Matrix41

この ColorMatrix の第 4 行および第 1 列にある要素を取得または設定します。Gets or sets the element at the fourth row and first column of this ColorMatrix.

Matrix42 Matrix42 Matrix42 Matrix42

この ColorMatrix の第 4 行および第 2 列にある要素を取得または設定します。Gets or sets the element at the fourth row and second column of this ColorMatrix.

Matrix43 Matrix43 Matrix43 Matrix43

この ColorMatrix の第 4 行および第 3 列にある要素を取得または設定します。Gets or sets the element at the fourth row and third column of this ColorMatrix. アルファ要素を表します。Represents the alpha component.

Matrix44 Matrix44 Matrix44 Matrix44

この ColorMatrix の第 4 行および第 4 列にある要素を取得または設定します。Gets or sets the element at the fourth row and fourth column of this ColorMatrix.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象

こちらもご覧ください