Если графическое изображение уже создано, например, с помощью графического редактора (например, Paint), то его можно показать с помощью компонентыTImage. В Delphi с помощью этого компонента можно отобразить следующие графические изображения:
1) растровое (*.bmp),
2) пиктограммы (*.ico),
3) типа метафайла (*.wmf),
4) курсора (*.cur).
Вместе с тем известны и другие способы хранения изображений (*.pcx, *.gif, *.tiff, *.jpeg, *.dwg). Для того, чтобы включить изображения других форматов их нужно перевести в формат *.bmp.
Основные свойства компонента TImage:
Canvas - содержит канву для прорисовки изображения;
Center - указывает, надо ли центрировать изображение в границах компонента. Игнорируется, если: AutoSize:= True; или Stretch:= True; и изображение не является пиктограммой (ICO);
Increment - разрешает/запрещает показ большого изображения по мере его загрузки;
Picture -центральное свойство класса. Служит контейнером изображения TPicture;
Proportional - разрешает/запрещает пропорционально уменьшать высоту и ширину изображения, если оно не может целиком уместиться в рабочей зоне компонента;
Stretch - разрешает/запрещает изменять размер изображения так, чтобы оно целиком заполнило клиентскую область компонента;
Transparent - з апрещает/разрешает накладывать собственный фон изображения на фон компонента.
Компонент TImage позволяет поместить графическое изображение в любое место на форме. Собственно картинку можно загрузить во время дизайна в редакторе свойства Picture (Инспектор Объектов). Картинка должна храниться в файле в формате BMP (bitmap), WMF (Windows Meta File) или ICO (icon). При проектировании следует помнить, что изображение, помещенное на форму во время дизайна, включается в файл.DPR и затем прикомпилируется к EXE-файлу. Поэтому такой EXE-файл может получиться достаточно большой. Как альтернативу можно рассмотреть загрузку картинки во время выполнения программы, для этого у свойства Picture (которое является объектом со своим набором свойств и методов) есть специальный метод LoadFromFile.
Пример. По нажатию кнопки необходимо загрузить в компоненту TImage изображение.
Обработчик нажатия кнопки Button1Click выглядит следующим образом:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Image1.Stretch:= True;
end;
end;
Если изображение, находящееся в TImage, нужно сохранить в файле, можно применить метод SaveToFile, который также принадлежит свойству Picture.
2-й способ. Компоненты TShape, TBevel
С помощью этого способа имеется возможность рисовать простейшие геометрические фигуры (прямоугольник, квадрат, скругленный прямоугольник, скругленный квадрат, эллипс, окружность). Фигура полностью занимает пространство компонента. Если задан квадрат или круг, а размеры элемента по горизонтали и вертикали отличаются, фигура чертится с размером меньшего измерения. Для создания таких фигур используется компонента TShape, расположенная на закладке Additional под пиктограммой .
Могут быть использованы следующие свойства компонента:
Shape: TShapeType = (stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle) – тип геометрической фигуры,
где
stRectangle – прямоугольник,
stSquare- квадрат,
stRoundRect- скругленный прямоугольник,
stRoundSquare- скругленный квадрат,
stEllipse- эллипс,
stCircle- окружность.
Выбранная фигура рисуется на весь экран компонента TShape. Изменение свойства Shape приводит к немедленной перерисовке изображения.
Brush: TBrush – используется для заливки области;
Pen: TPen -- используются для изменения параметров рамки.
Пример:
Procedure TForm1.FormCreate();
begin
with Shape1 do
begin
Shape:= stRectangle; //Фигура - прямоугольник
Brush.Color:= clRed; //Красный цвет заливки
Pen.Color:= Blue; //Синий цвет рамки
Brush.Style:= bsHorizontal; //Дискретная заливка в виде горизонтальных линий
Pen.Style:= psSolid; //Сплошной тип линии рамки
Pen.Width:= 2; //Толщина линии рамки
end;
end;
Bitmap: TBitmap - позволяет в качестве закраски или заливки использовать растровое изображение, например: Shape1.Brush.Bitmap:= Image1.Picture.Bitmap;.