Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
26.04.2015
Размер:
155.65 Кб
Скачать

Графический образ (компонент Image)

Для отображения картинок соответствующих форматов в Delphi представлен компонент Image. Данный компонент представляет невидимый контейнер для размещения изображения растрового типа . Компонент Image имеет свойство Canvas, поэтому на его поверхности можно рисовать поверх находящегося на нем изображения. Компонент Image является более развитым, чем PaintBox, так как позволяет работать с графическими файлами.

Основным свойством является свойство Picture. Тип изображения задается свойством Bitmap. В объект типа TPicture изображение загружается из следующих источников:

  • Графического файла ( изображение загруженное на этапе проектирования увеличивает объем исполняемого файла )

  • Компонента содержащего изображение.

Для загрузки из файла используется метод LoadFromFile(FileName: String )

Image1.Picture.LoadFromFile(‘c:\Foto\MyFoto.bmp);

При загрузке изображения из содержащего его компонента необходимо указать тип изображения и использовать метод Assign.

Im2.Picture.Bitmap.Assign(Im1.Picture.Bitmap); // копирование из Im1 в Im2

Image2.Picture:=Image1.Picture; ); // копирование из Im1 в Im2

Для сохранения изображения в файле используется метод SaveToFile(FileName: String )

Image1.Picture.SaveToFile(‘c:\Foto\MyFoto.bmp);

Размер изображения определяется свойствами Height и Width и являются подсвойствами Picture. По умолчанию совпадает с размерами компонента. Если размер картинки не совпадает с областью изображения, то можно использовать свойства AutoSize и Stretch компонента Image. Если AutoSize принимает False, то картина или ее часть помещается в область без изменения, при значении True размеры области подстраиваются под картинку.

Свойство Stretch ( значение True ) подстраивает размеры картинки под область изображения, либо оставляет ее без изменения ( значение False ). Если размер картинки больше области и оба свойства принимают значение False ( по умолчанию), то изображение отсекается.

Компонент Image позволяет работать с изображениями типа Jpeg для этого необходимо подключить модуль JPEG. Для работы с данным форматом можно использовать переменные (объекты) типа TJPEGImage. При прорисовке изображения в компоненте Image из переменной типа TJPEGImage методом Draw формат изображения преобразуется на Bmp, это позволяет рисовать на холсте.

Пример 10 Копирование jpeg изображения из Image1 в Image2

Image1.AutoSize:=True; // установка размера компонента под картинку

Image1.Picture.LoadFromFile('Testimgp.jpg'); //загрузка изображения

Image2.Stretch:=True; // подстраивает размеры картинки под область изображения

Image2.Picture:=Image1.Picture;// копирование

Image2.Picture.SaveToFile('Testimgp1.jpg'); // запись картинки в файл (jpg)

Пример 11 Рисование на холсте с картиной из Jpeg файла

procedure TForm1.Button1Click(Sender: TObject);

var

Pic:TJPEGImage;

begin

Pic:=TJPEGImage.Create; // создание объекта типа TJPEGImage

Pic.LoadFromFile('Testimgp.jpg'); // загрузка изображения в переменную

Image1.Canvas.Draw(0,0,Pic); // прорисовка изображения (BMP) в Image

Image1.Canvas.Ellipse(0,0,30,30);

Image1.Picture.SaveToFile('Testimgp1.bmp');// запись картинки с эллипсом ( в формате BMP)

Pic.SaveToFile('Testimgp2.jpg'); // запись картинки из переменной ( в формате jpeg )

Pic.Free ;

end;

При работе с Jpeg форматом доступны ряд свойств:

  • GrayScale – вывод на экран в градации серого ( значение -True )

  • Scale – масштаб изображения ( jsFullSize – полный, jsHalf – половинный,

jsQuarter – четверть, jsEigth – 1/ 8 размера )

  • Performance – качество / скорость ( jsBestQuality, jsBestSpeed )

Пример 12 Свойства jpeg изображения

procedure TForm1.Button3Click(Sender: TObject);

var

Pic,Pic1:TJPEGImage;

begin

Pic:=TJPEGImage.Create; Pic1:=TJPEGImage.Create;

Image1.AutoSize:=True;

Pic.LoadFromFile('Testimgp.jpg');

Image1.Picture.Assign(Pic); // копирование в Image1 из переменной

TJPEGImage(Image1.Picture.Graphic).Grayscale:=true; // установка серого

Pic1.Assign(Image1.Picture); // копирование в переменную из Image1

// Image2.Picture:=Image1.Picture; // копирование в Image2 из Image1

Image2.Picture.Assign(Pic1); //копирование в Image2 из переменной

TJPEGImage(Image2.Picture.Graphic).Scale:=jsHalf; // установка масштаба

TJPEGImage(Image2.Picture.Graphic).PixelFormat:=jf8Bit;// 8 битны формат

Pic1.SaveToFile('Testimgp4.jpg');

Pic.Free; Pic1.Free;

end;

Соседние файлы в папке Методический материал