Mega Code Archive

 
Categories / C# / 2D Graphics
 

Create an ImageAttributes object and set its color matrix

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Text; using System.Windows.Forms; public class Form1 : Form {     protected override void OnPaint(PaintEventArgs e) {         Graphics g = e.Graphics;         Bitmap bmp = new Bitmap("rama.jpg");         g.FillRectangle(Brushes.White, this.ClientRectangle);         for (int i = 1; i <= 7; ++i) {             Rectangle r = new Rectangle(i * 40 - 15, 0, 15, this.ClientRectangle.Height);             g.FillRectangle(Brushes.Gray, r);         }         float[][] matrixItems = {                             new float[] {1, 0, 0, 03, 0},                             new float[] {0, 1, 0, 0.1f, 0},                             new float[] {0, 0, 1, 0, 0},                             new float[] {0, 0, 0, 0.6f, 0},                              new float[] {0, 0, 0, 0, 1}};         ColorMatrix colorMatrix = new ColorMatrix(matrixItems);         ImageAttributes imageAtt = new ImageAttributes();         imageAtt.SetColorMatrix(             colorMatrix,             ColorMatrixFlag.Default,             ColorAdjustType.Bitmap);         g.DrawImage(             bmp,             this.ClientRectangle,  // destination rectangle             0.0f,             // source rectangle x              0.0f,             // source rectangle y             bmp.Width,        // source rectangle width             bmp.Height,       // source rectangle height             GraphicsUnit.Pixel,             imageAtt);         imageAtt.Dispose();     }     public static void Main() {         Application.Run(new Form1());     } }