Работа с изображениями в GraphABC — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
 
Строка 10: Строка 10:
 
     var p := new Picture(30, 30);
 
     var p := new Picture(30, 30);
 
</source>
 
</source>
Он просто лучше.
+
Он короче и понятней, а значит лучше.
  
 
'''Замечание 2.''' Для сохранения картинки в файл используйте следующий код.
 
'''Замечание 2.''' Для сохранения картинки в файл используйте следующий код.

Текущая версия на 08:36, 16 ноября 2016

О работе с изображениями следует прочесть в разделе 10 учебного пособия «Работа с графикой в системе PascalABC.NET». Сделаем ряд замечаний относительно этого текста.

Замечание 1. Вместо операторов

    var p: Picture;
    CreatePicture(p, 30, 30);

которые используются в учебном пособии для создания новой картинки размера 30 × 30, используйте код

    var p := new Picture(30, 30);

Он короче и понятней, а значит лучше.

Замечание 2. Для сохранения картинки в файл используйте следующий код.

    var fname := 'my-picture-1.png';
    p.Save(fname);      // fname — имя файла для сохранения рисунка
    
    // другой вариант: можно указать имя явно
    p.Save('my-picture-1.png');

Пример работы с рисунком

    uses GraphABC;

    begin
      // создание рисунка p с шириной 150 пикселей и высотой 100 пикселей
      var p: Picture := new Picture(150, 100);

      // настраиваем ширину пера
      Pen.Width := 2;

      // рисуем прямоугольник на рисунке p
      p.Rectangle(0, 0, p.Width, p.Height);

      // настраиваем цвет кисти и ширну пера
      Brush.Color := Color.Navy;
      Pen.Width := 1;

      // рисуем окружность на рисунке p
      p.Circle(p.Width div 2, p.Height div 2, 40);

      // выводим рисунок p с точке (0, 0) графического окна
      p.Draw(0, 0);

      // заливаем графическое окно жёлтым цветом
      Window.Clear(Color.Yellow);

      // выводим рисунок p с точке (100, 50) графического окна
      p.Draw(100, 50);

      // сохраняем рисунок в файле с именем circle-in-rect.png
      p.Save('circle-in-rect.png');
    end.