ImageAttributes.SetColorMatrix メソッド (ColorMatrix)
アセンブリ: System.Drawing (system.drawing.dll 内)

Dim instance As ImageAttributes Dim newColorMatrix As ColorMatrix instance.SetColorMatrix(newColorMatrix)
戻り値
このメソッドは値を返しません。

ImageAttributes オブジェクトは、5 つの調整カテゴリ (既定、ビットマップ、ブラシ、ペン、テキスト) に関して色とグレースケールの設定を保持します。たとえば、既定のカテゴリにあるカラー調整行列を指定し、ビットマップ カテゴリには別のカラー調整行列を指定し、さらにペン カテゴリにも異なるカラー調整行列を指定できます。
既定のカラー調整設定値およびグレースケール調整設定値は、調整設定値が設定されていないすべてのカテゴリに対して適用されます。たとえば、ペン カテゴリの調整設定を一切指定していない場合、ペン カテゴリには既定の設定が適用されます。
ImageAttributes.SetColorMatrix(ColorMatrix) メソッドを呼び出すことは、ImageAttributes.SetColorMatrix(ColorMatrix,ColorMatrixFlag) メソッドを呼び出し、flags パラメータに ColorMatrixFlag.Default を渡すことと同等です。ColorMatrixFlag.Default を指定すると、すべての色 (灰色も含む) がカラー調整行列で調整されます。

次の例は、Windows フォームでの使用を意図してデザインされており、Paint イベント ハンドラのパラメータである PaintEventArgse が必要です。このコードは次のアクションを実行します。
-
すべてのカラー値が 128 に設定された四角形イメージを作成し、灰色で塗りつぶされた四角形にします。次にこのコードは、この四角形イメージを画面に描画します。
-
ColorMatrix を作成し、その Matrix 位置を 1.75 に設定します。それにより、このイメージの赤の要素が強調されます。
-
ImageAttributes オブジェクト内に設定された ColorMatrix を使用して、イメージ (2 回目の四角形) を画面に描画します。
2 回目の四角形は赤が強調されていることに注意してください。
Public Sub SetColorMatrixExample(ByVal e As PaintEventArgs) ' Create a rectangle image with all colors set to 128 (medium ' gray). Dim myBitmap As New Bitmap(50, 50, PixelFormat.Format32bppArgb) Dim g As Graphics = Graphics.FromImage(myBitmap) g.FillRectangle(New SolidBrush(Color.FromArgb(255, 128, 128, _ 128)), New Rectangle(0, 0, 50, 50)) myBitmap.Save("Rectangle1.jpg") ' Open an Image file and draw it to the screen. Dim myImage As Image = Image.FromFile("Rectangle1.jpg") e.Graphics.DrawImage(myImage, 20, 20) ' Initialize the color matrix. Dim myColorMatrix As New ColorMatrix myColorMatrix.Matrix00 = 1.75F ' Red myColorMatrix.Matrix11 = 1.0F ' Green myColorMatrix.Matrix22 = 1.0F ' Blue myColorMatrix.Matrix33 = 1.0F ' alpha myColorMatrix.Matrix44 = 1.0F ' w ' Create an ImageAttributes object and set the color matrix. Dim imageAttr As New ImageAttributes imageAttr.SetColorMatrix(myColorMatrix) ' Draw the image using the color matrix. Dim rect As New Rectangle(100, 20, 200, 200) e.Graphics.DrawImage(myImage, rect, 0, 0, 200, 200, _ GraphicsUnit.Pixel, imageAttr) ' Image End Sub 'SetColorMatrixExample
private void SetColorMatrixExample(PaintEventArgs e) { // Create a rectangle image with all colors set to 128 (medium // gray). Bitmap myBitmap = new Bitmap(50, 50, PixelFormat.Format32bppArgb); Graphics g = Graphics.FromImage(myBitmap); g.FillRectangle(new SolidBrush(Color.FromArgb(255, 128, 128, 128)), new Rectangle(0, 0, 50, 50)); myBitmap.Save("Rectangle1.jpg"); // Open an Image file and draw it to the screen. Image myImage = Image.FromFile("Rectangle1.jpg"); e.Graphics.DrawImage(myImage, 20, 20); // Initialize the color matrix. ColorMatrix myColorMatrix = new ColorMatrix(); // Red myColorMatrix.Matrix00 = 1.75f; // Green myColorMatrix.Matrix11 = 1.00f; // Blue myColorMatrix.Matrix22 = 1.00f; // alpha myColorMatrix.Matrix33 = 1.00f; // w myColorMatrix.Matrix44 = 1.00f; // Create an ImageAttributes object and set the color matrix. ImageAttributes imageAttr = new ImageAttributes(); imageAttr.SetColorMatrix(myColorMatrix); // Draw the image using the color matrix. Rectangle rect = new Rectangle(100, 20, 200, 200); e.Graphics.DrawImage(myImage, rect, 0, 0, 200, 200, GraphicsUnit.Pixel, imageAttr); }
private: void SetColorMatrixExample( PaintEventArgs^ e ) { // Create a rectangle image with all colors set to 128 (medium // gray). Bitmap^ myBitmap = gcnew Bitmap( 50,50,PixelFormat::Format32bppArgb ); Graphics^ g = Graphics::FromImage( myBitmap ); g->FillRectangle( gcnew SolidBrush( Color::FromArgb( 255, 128, 128, 128 ) ), Rectangle(0,0,50,50) ); myBitmap->Save( "Rectangle1.jpg" ); // Open an Image file and draw it to the screen. Image^ myImage = Image::FromFile( "Rectangle1.jpg" ); e->Graphics->DrawImage( myImage, 20, 20 ); // Initialize the color matrix. ColorMatrix^ myColorMatrix = gcnew ColorMatrix; // Red myColorMatrix->Matrix00 = 1.75f; // Green myColorMatrix->Matrix11 = 1.00f; // Blue myColorMatrix->Matrix22 = 1.00f; // alpha myColorMatrix->Matrix33 = 1.00f; // w myColorMatrix->Matrix44 = 1.00f; // Create an ImageAttributes object and set the color matrix. ImageAttributes^ imageAttr = gcnew ImageAttributes; imageAttr->SetColorMatrix( myColorMatrix ); // Draw the image using the color matrix. Rectangle rect = Rectangle(100,20,200,200); e->Graphics->DrawImage( myImage, rect, 0, 0, 200, 200, GraphicsUnit::Pixel, imageAttr ); }
private void SetColorMatrixExample(PaintEventArgs e) { // Create a rectangle image with all colors set to 128 (medium // gray). Bitmap myBitmap = new Bitmap(50, 50, PixelFormat.Format32bppArgb); Graphics g = Graphics.FromImage(myBitmap); g.FillRectangle(new SolidBrush(Color.FromArgb(255, 128, 128, 128)), new Rectangle(0, 0, 50, 50)); myBitmap.Save("Rectangle1.jpg"); // Open an Image file and draw it to the screen. Image myImage = Image.FromFile("Rectangle1.jpg"); e.get_Graphics().DrawImage(myImage, 20, 20); // Initialize the color matrix. ColorMatrix myColorMatrix = new ColorMatrix(); // Red myColorMatrix.set_Matrix00(1.75F); // Green myColorMatrix.set_Matrix11(1); // Blue myColorMatrix.set_Matrix22(1); // alpha myColorMatrix.set_Matrix33(1); // w myColorMatrix.set_Matrix44(1); // Create an ImageAttributes object and set the color matrix. ImageAttributes imageAttr = new ImageAttributes(); imageAttr.SetColorMatrix(myColorMatrix); // Draw the image using the color matrix. Rectangle rect = new Rectangle(100, 20, 200, 200); e.get_Graphics().DrawImage(myImage, rect, 0, 0, 200, 200, GraphicsUnit.Pixel, imageAttr); } //SetColorMatrixExample

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ImageAttributes.SetColorMatrix メソッド (ColorMatrix, ColorMatrixFlag, ColorAdjustType)
アセンブリ: System.Drawing (system.drawing.dll 内)

Public Sub SetColorMatrix ( _ newColorMatrix As ColorMatrix, _ mode As ColorMatrixFlag, _ type As ColorAdjustType _ )
Dim instance As ImageAttributes Dim newColorMatrix As ColorMatrix Dim mode As ColorMatrixFlag Dim type As ColorAdjustType instance.SetColorMatrix(newColorMatrix, mode, type)
public void SetColorMatrix ( ColorMatrix newColorMatrix, ColorMatrixFlag mode, ColorAdjustType type )
public: void SetColorMatrix ( ColorMatrix^ newColorMatrix, ColorMatrixFlag mode, ColorAdjustType type )
public void SetColorMatrix ( ColorMatrix newColorMatrix, ColorMatrixFlag mode, ColorAdjustType type )
public function SetColorMatrix ( newColorMatrix : ColorMatrix, mode : ColorMatrixFlag, type : ColorAdjustType )
戻り値
このメソッドは値を返しません。

ImageAttributes オブジェクトは、5 つの調整カテゴリ (既定、ビットマップ、ブラシ、ペン、テキスト) に関して色とグレースケールの設定を保持します。たとえば、既定のカテゴリにあるカラー調整行列を指定し、ビットマップ カテゴリには別のカラー調整行列を指定し、さらにペン カテゴリにも異なるカラー調整行列を指定できます。
既定のカラー調整設定値およびグレースケール調整設定値は、調整設定値が設定されていないすべてのカテゴリに対して適用されます。たとえば、ペン カテゴリの調整設定を一切指定していない場合、ペン カテゴリには既定の設定が適用されます。
特定のカテゴリに対してカラー調整設定値またはグレースケール調整設定値を指定すると、そのカテゴリに適用されていた既定の調整設定値は解除されます。たとえば、既定のカテゴリに対して調整設定値のコレクションを指定するとします。Pen を SetColorMatrix メソッドに渡してペン カテゴリのカラー調整行列を設定すると、ペンには既定の調整設定は一切適用されません。

SetColorMatrix メソッドを使用する方法を次のコード例に示します。この例を実行するには、コードを Windows フォームに貼り付け、フォームの Paint イベント処理メソッドから、e を PaintEventArgs として渡すことにより、RotateColors を呼び出します。
Private Sub RotateColors(ByVal e As PaintEventArgs) Dim image As Bitmap = New Bitmap("RotationInput.bmp") Dim imageAttributes As New ImageAttributes() Dim width As Integer = image.Width Dim height As Integer = image.Height Dim degrees As Single = 60.0F Dim r As Double = degrees * System.Math.PI / 180 ' degrees to radians Dim colorMatrixElements As Single()() = { _ New Single() {CSng(System.Math.Cos(r)), _ CSng(System.Math.Sin(r)), 0, 0, 0}, _ New Single() {CSng(-System.Math.Sin(r)), _ CSng(-System.Math.Cos(r)), 0, 0, 0}, _ New Single() {0, 0, 2, 0, 0}, _ New Single() {0, 0, 0, 1, 0}, _ New Single() {0, 0, 0, 0, 1}} Dim colorMatrix As New ColorMatrix(colorMatrixElements) imageAttributes.SetColorMatrix( _ colorMatrix, _ ColorMatrixFlag.Default, _ ColorAdjustType.Bitmap) e.Graphics.DrawImage(image, 10, 10, width, height) ' Pass in the destination rectangle (2nd argument), the upper-left corner ' (3rd and 4th arguments), width (5th argument), and height (6th ' argument) of the source rectangle. e.Graphics.DrawImage( _ image, _ New Rectangle(150, 10, width, height), _ 0, 0, _ width, _ height, _ GraphicsUnit.Pixel, _ imageAttributes) End Sub
private void RotateColors(PaintEventArgs e) { Bitmap image = new Bitmap("RotationInput.bmp"); ImageAttributes imageAttributes = new ImageAttributes(); int width = image.Width; int height = image.Height; float degrees = 60f; double r = degrees * System.Math.PI / 180; // degrees to radians float[][] colorMatrixElements = { new float[] {(float)System.Math.Cos(r), (float)System.Math.Sin(r), 0, 0, 0}, new float[] {(float)-System.Math.Sin(r), (float)-System.Math.Cos(r), 0, 0, 0}, new float[] {0, 0, 2, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1}}; ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements); imageAttributes.SetColorMatrix( colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); e.Graphics.DrawImage(image, 10, 10, width, height); e.Graphics.DrawImage( image, new Rectangle(150, 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); }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ImageAttributes.SetColorMatrix メソッド (ColorMatrix, ColorMatrixFlag)
アセンブリ: System.Drawing (system.drawing.dll 内)

Dim instance As ImageAttributes Dim newColorMatrix As ColorMatrix Dim flags As ColorMatrixFlag instance.SetColorMatrix(newColorMatrix, flags)
戻り値
このメソッドは値を返しません。

ImageAttributes オブジェクトは、5 つの調整カテゴリ (既定、ビットマップ、ブラシ、ペン、テキスト) に関して色とグレースケールの設定を保持します。たとえば、既定のカテゴリにあるカラー調整行列を指定し、ビットマップ カテゴリには別のカラー調整行列を指定し、さらにペン カテゴリにも異なるカラー調整行列を指定できます。
既定のカラー調整設定値およびグレースケール調整設定値は、調整設定値が設定されていないすべてのカテゴリに対して適用されます。たとえば、ペン カテゴリの調整設定を一切指定していない場合、ペン カテゴリには既定の設定が適用されます。


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ImageAttributes.SetColorMatrix メソッド
- ImageAttributes.SetColorMatrix メソッドのページへのリンク