Листинг 67.1. Метод для вывода двух прямоугольников, заполненных цветом.
private void pictureBox1_Paint(object sender,
PaintEventArgs e)
{
//Создаем изображение первого прямоугольника,
//заполненного серым цветом:
Bitmap myBitmap = new Bitmap(150, 150,
PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(myBitmap);
g.FillRectangle(new SolidBrush(Color.FromArgb(255,
128, 128, 128)), new Rectangle(0, 0, 150, 150));
myBitmap.Save("Rectangle1.jpg");
//Открываем файл изображения и
//рисуем это первое изображение на экране:
Image myImage =
Image.FromFile("Rectangle1.jpg");
e.Graphics.DrawImage(myImage, 20, 20);
//Создаем и инициализируем
//матрицу цвета myColorMatrix класса ColorMatrix:
ColorMatrix myColorMatrix = new ColorMatrix();
myColorMatrix.Matrix00 = 1.7F; // Red
myColorMatrix.Matrix11 = 1; // Green
myColorMatrix.Matrix22 = 1; // Blue
myColorMatrix.Matrix33 = 1; // alpha
myColorMatrix.Matrix44 = 1; // w
//Создаем объект myImageAttributes
//класса ImageAttributes:
ImageAttributes myImageAttributes =
new ImageAttributes();
//Устанавливаем матрицу цвета myColorMatrix
//в качестве текущей цветовой модели:
myImageAttributes.SetColorMatrix(myColorMatrix);
//Создаем второй прямоугольник:
Rectangle myRectangle2 = new Rectangle(200, 20,
200, 200);
//Рисуем на экране второй прямоугольник,
//заполненный при помощи матрицы цвета myColorMatrix:
e.Graphics.DrawImage(myImage, myRectangle2, 0, 0,
200, 200, GraphicsUnit.Pixel, myImageAttributes);
}
В самом верху этого файла Form1.cs подключаем нужное пространство имен:
using System.Drawing.Imaging;
После обычного построения и выполнения программы (Ctrl+F5) появляется форма Form1 с двумя прямоугольниками, из которых первый (слева) заполнен серым цветом, а второй прямоугольник заполнен красным цветом заданной нами (в строке myColorMatrix.Matrix00 = 1.7F;) величины 1.7 (рис. 67.1).