Урок 9 Компонент Image No title

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