Csharp/C Sharp/2D Graphics/ImageAttributes

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Create an ImageAttributes object and set its color matrix

 
using System;
using System.Collections.Generic;
using System.ruponentModel;
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());
    }
}