netlib.narod.ru< Назад | Оглавление | Далее >

Вращение и наклон

Следующие два метода позволяют еще сильнее деформировать картинку. Они сдвигают, масштабируют, перекашивают или вращают ее, подгоняя под параллелограмм.


Методы DrawImage класса Graphics (выборочно)



void DrawImage(Image image, Point[] apt)
void DrawImage(Image image, PointF[] aptf)


Передаваемый во втором аргументе массив должен содержать точно три точки. Эти точки определяют местоположение трех углов изображения в мировых координатах:

Поскольку изображение вписывается в параллелограм, местоположение нижнего правого угла вычисляется автоматически.

Вот программа, которая устанавливает эти три точки в центре верхней стороны клиентской области, в центре правой стороны клиентской области и в центре левой стороны клиентской области.

ImageAtPoints.cs

  //----------------------------------------------
  // ImageAtPoints.cs (C) 2001 by Charles Petzold
  //----------------------------------------------
  using System;
  using System.Drawing;
  using System.Windows.Forms;

  class ImageAtPoints: PrintableForm
  {
      Image image;

      public new static void Main()
      {
          Application.Run(new ImageAtPoints());
      }
      public ImageAtPoints()
      {
          Text = "Image At Points";

          image = Image.FromFile("..\\..\\..\\Apollo11FullColor.jpg");
      }
      protected override void DoPage(Graphics grfx, Color clr, int cx, int cy)
      {
          grfx.DrawImage(image, new Point[] { new Point(cx / 2, 0),
                                              new Point(cx,     cy / 2),
                                              new Point(0,      cy / 2)});
      }
  }

А вот полученное изображение.


Рис. 11.8.

Это не единственный способ вращать или наклонять растровые изображения. Вы также можете использовать обычное мировое преобразование.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz