Урок 9 Компонент Image
12-Oct-2005
Сейчас вы узнаете как можно использовать компонент TImage. Как вы уже поняли
- этот компонент для работы с изображениями.Изначально он работает с ыайлами
типа BMP и WMF - это примитивные и неудобные форматы.Однако можно работать и
с jpeg если подключить заголовочный файл jpeg.hpp к программе.Это
делается довольно просто.Создаём новое приложение и смотрим вниз редактора кода.Там
есть три закладки - Unit1.cpp, Unit1.h, Diagram.Выбираем вторую - unit1.h.Это
заголовочный файл вашей программы, в котором указаны подключаемые для тех или
иных целей библиотеки, а также публикуются переменные и функции, чтобы быть
доступными из любой части программы.Так вот, нам надо в начале присоединить
заголовочный файл для работы с jpeg- форматом.Делается это так - добавляется
строка:
#include <jpeg.hpp>
Всё!Теперь можно работать с изображениями.
Киньте на форму наш любимый Button и Image со вкладки Additional.Да, и заранее
сохраните какой-нибудь jpeg - рисунок на компе с коротким адрессом, допустим
"C:\1.jpg"
С jpeg я вам покажу только пару действий, а вот с BMP можно много чего творить.
Image1->Picture->LoadFromFile("c:\1.jpg");//загружает
рисунок в Image1
Image1->Picture->SaveToFile("c:\2.jpg");//сохраняет
рисунок из Image1 в указанный файл
Несколько свойств:
Stretch - изображение полностью вписывается в отведённую область
независимо от размеров
Proportional - указывает - будут ли соблюдаться пропорции при
изменении размеров изображения
Width -ширина компонента
Height - высота компонента
Picture->Height - высота рисунка
Picture->Width - ширина рисунка
С BMP возможностей будет побольше.Так как к нему можно применять канву.
Вот небольшой код для кнопки
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
Image1->Canvas->Ellipse(5,5,100,100); //рисует
эллипс (x-координата начала, у-координата начала, х-коорд.конца, у-коорд.конца)в
данном случае получится круг.
Image1->Canvas->MoveTo(20,20); //перемещает карандаш
в координаты
int x=Image1->Canvas->PenPos.x; // указывает на
х-координату карандаша
int y=Image1->Canvas->PenPos.y;//
указывает на у-координату карандаша
Image1->Canvas->LineTo(120,120); // чертит линию
в координату
Image1->Canvas->TextOutA(120,120,"F*ck you"); // пишет
текст"F*ck you" в точке с координатами х=120, у=120
Image1->Picture->SaveToFile("c:\1.bmp"); // сохраняет
рисунок в файл
}
При помощи этих двух команд можно узнать либо задать цвет пиксела.
TColor q=Image1->Canvas->Pixels[5][5];
Image1->Canvas->Pixels[5][5]=clBlack; // вместо названия
цвета - можно указать набор цифр
Если есть вопросы по этому материалу или вопросы в принипе, пишите на мыло,
ответы постараюсь выложить в последующих уроках.
Author of article - MA F*CKA CREW 2005
www.builderhelper.3dn.ru
builder.helper@rambler.ru