Компьютерная графика, мультимедиа и игры на Visual C#


         

Глава Методика управления цветом изображения 


Листинг 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).




Содержание  Назад  Вперед