Delphi форматы графических файлов

Обновлено: 05.07.2024

Февраль 21st, 2013 admin

Дает отображение графического изображения и обеспечивает работу с изображением

Иерархия TObiect — TPersistent — TComponent — TControl — TGraphic-Control

Модуль extctrls

Описание

Во время проектирования загрузить в свойство Picture графический файл можно щелкнув на кнопке с многоточием около свойства Picture в окне Инспектора Объектов или при нажатии дважды на Image. Должно открыться окно Picture Editor, которое позволит загрузить в свойство Picture некоторый графический файл (через кнопку Load), и сохранить открытый файл, дав ему новое имя или сохранить в новом каталоге.

Когда вы в процессе создания проекта сделали загрузку изображения из файла в компонент Image, он не просто отобразит его, но и сохранит загруженное изображение в приложении. Приемущества составляет в том, что ваш проект в целом будет поставляться без отдельного графического файла.

При установке свойства AutoSize равному true, то размер компонента Image будет автоматом подогнан под размер помещенной в image картинки. Если свойство AutoSize установлено в значение false, то изображение может и не уместиться в компонент или же, наоборот, площадь компонента возможно окажется намного больше площади изображения.

Другое свойство — Stretch позволяет реализовать подгонку не компонента под размер рисунка, а сам рисунок под параметр компонента. Но поскольку вряд ли реально в действительности установить размеры Image очень точно пропорциональными величине рисунка, то изображение будет искажено. При установке Stretch равное true может иметь смысл только для каких-то узоров, но не для картинок. Свойство Stretch не действует на изображения пиктограмм, которые не меняют своих размеров.

Свойство — Center, которое установленно в true, делает по центру изображение на площади Image, если параметры размера компонента больше параметра размеров рисунка.

Объект Picture и его свойства Bitmap, Icon, Metafile и Graphic имеют методы файлового чтения и записи LoadFromFile и SaveToFile. Для свойств Picture.Bitmap, Picture.Icon и Picture.Metafile формат файла должен соответствовать классу объекта: битовой матрице, пиктограмме, метафайлу. При чтении файла в свойство Picture.Graphic файл должен иметь формат метафайла. А для самого объекта Picture методы чтения и записи автоматически подстраиваются под тип файла.

Например, если вы имеете в приложении компонент-диалог OpenPicture-Dialog, то загрузка в Image выбираемого пользователем графического фала может быть организована оператором

if(OpenPictureDialogl.Execute) then

Загружаемый этим оператором файл может быть любого типа: битовая матрица, пиктограмма или метафайл. Если будут открываться только файлы битовых матриц, то оператор загрузки файла можно заменить на

Imagel.Picture.Bitmap.LoadFromFile(OpenPictureDialogl.FileName);

Для пиктограмм можно было бы использовать оператор

Imagel.Picture.Icon.LoadFromFile(OpenPictureDialogl.FileName);

а для метафайлов — оператор

Imagel.Picture.Graphic.LoadFromFile(OpenPictureDialogl.FileName);

Но во всех этих случаях, если формат файла не совпадет с предполагаемым, возникнет ошибка.

Аналогично работает и метод SaveToFile с тем отличием, что примененный к Picture или к Picture.Graphic он сохраняет в файле изображение любого формата. Например, если вы дополните свое приложение диалогом SavePic-tureDialog, то сохранение изображения в файле можно организовать оператором

if SavePictureDialogl.Execute then

В этом случае пользователь получит возможность сохранить изображение любого формата в файле с новым именем. Только при этом, чтобы не возникало в дальнейшем путаницы, расширение сохраняемого файла все-таки должно соответствовать формату сохраняемого изображения.

Абсолютно идентично для изображений любого формата будет работать программа, если оператор сохранения вы замените на

Imagel.Picture.Graphic.SaveToFile(SavePictureDialogl.FileName);

использующий свойство Picture.Graphic. А если вам известен формат хранимого в компоненте Image изображения, то вы можете применить метод SaveToFile к свойствам Picture.Bitmap, Picture.Icon, и Picture.Metafile.

Для всех рассмотренных объектов Picture, Picture.Bitmap, Picture.Icon, и Picture.Metafile определяют методы присваивания значений объектов Assign.

Однако для BitMap, Icon и Metafile присваивать можно только значения однородных объектов: соответственно битовых матриц, пиктограмм, метафайлов.

При попытке присвоения значениям разнородных объектов будет генерироваться исключение EConvertError. Объект Picture — является универсальным, ему можно присвоить значения объектов любых из остальных трех классов. А значение Picture можно присвоить только тому объекту, тип которого совпадет с типом объекта, хранящегося в нем.

Метод Assign можно использовать и для обмена изображениями с буфером Clipboard.
Например, оператор

Clipboard.Assign(Imagel.Picture);

занесет в буфер обмена изображение, хранящееся в Imagel. Аналогично оператор

Imagel.Picture.Assign(Clipboard);

прочитает в Imagel изображение, находящееся в буфере обмена. Причем это может быть любое изображение, и даже текст.

Надо только не забыть при работе с буфером обмена вставить в оператор uses вашего модуля ссылку на модуль
Clipbrd. Автоматически Delphi эту ссылку не вставляет.

Благодаря наличию канвы Canvas компонент Image широко используется не только для хранения готовых изображений, но и для построения различных графических редакторов.

Основные свойства

Основные методы

Никаких специальных методов в компоненте не объявлено. Компонет наследует множество методы от базового класса TControl .

Событие Описание
OnProgress События происходят при медленных процессах изменения графического
изображения и позволяют построить индикатор хода процесса.

Остальные события наследуются от класса TControl

. прямоугольная матрица в Pascal что значит timage delphi ss10893 схама работы картинка из файла делфи image Delphi bitmap это

. tbitmap делфи свойства css dcnfdbnm bpj,hf;tybt компонент image в delphi 7 stretch delphi timage описание делфи

С помощью Delphi можно полноценно конвертировать графические форматы один в другой. Для работы с изображениями существует несколько предопределённых классов. Рассмотрим некоторые варианты конвертирования.

1. Конвертирование BMP в EMF

Следующая несложная процедура конвертирует bmp-файл SourceFileName в emf-файл и располагает его в той же директории, что и исходный файл.

2. Конвертирование BMP в JPG

Данная процедура выполняет такое конвертирование:

В Uses необходимо добавить модули Jpeg и Clipbrd. В данном примере chrtOutputSingle - это объект TChart (страница Additional). Перед вызовом функции в буфере обмена должен находиться объект типа TBitmap.

3. Конвертирование BMP в WMF

Данное конвертирование также не составляет труда:

4. Обратное конвертирование: WMF в BMP

Обратное конвертирование мало чем отличается от предыдущего:

5. Конвертирование BMP в DIB

Допустим, что файл хранится в формате BMP. Нужно его преобразовать в DIB и отобразить. Итак. Это не тривиально, но помочь нам смогут функции GetDIBSizes и GetDIB из модуля GRAPHICS.PAS. Приведу две процедуры: одну для создания DIB из TBitmap и вторую для его освобождения:

Создаём форму с TImage Image1 и загружаем в него 256-цветное изображение, затем рядом размещаем TPaintBox. Добавляем следующие строчки к private-объявлениям нашей формы:

Создаем нижеприведенные обработчики событий, которые демонстрируют процесс отрисовки DIB:

Это поможет вам сделать первый шаг. Единственное, что вы можете захотеть, это создать собственный HPalette на основе DIB, вместо использования TBitmap и своей палитры. Функция с именем PaletteFromW3DIB из GRAPHICS.PAS как раз этим и занимается, но она не объявлена в качестве экспортируемой, поэтому для ее использования необходимо скопировать ее исходный код и вставить его в модуль.

6. Конвертирование BMP в ICO

Вам необходимо создать два битмапа, битмап маски (назовём его "AND" bitmap) и битмап изображения (назовём его XOR bitmap). Вы можете пропустить обработчики для "AND" и "XOR" битмапов в Windows API функции CreateIconIndirect() и использовать обработчик возвращённой иконки в Вашем приложении.

Способ преобразования изображения размером 32x32 в иконку:

7. Конвертирование BMP в RTF

Да, и такое тоже возможно. Вот так например:

8. Конвертирование CUR в BMP

Преобразование курсора в TBitmap:

9. Конвертирование ICO в BMP

Чтобы преобразовать Icon в Bitmap, используйте TImageList. Для обратного преобразования замените метод AddIcon на Add, и метод GetBitmap на GetIcon.

10. Конвертирование JPG в BMP.

Статья добавлена: 1 июня 2005

Рейтинг статьи: 3.25 Голосов: 4 Ваша оценка:

Зарегистрируйтесь/авторизируйтесь,
чтобы оценивать статьи.

Для вставки ссылки на данную статью на другом сайте используйте следующий HTML-код:

Ссылка для форумов (BBCode):

Поделитесь ссылкой в социальных сетях:

Комментарии читателей к данной статье

Пока нет комментариев к данной статье. Оставьте свой и он будет первым.

Графические возможности Delphi. Image.

Этот компонент служит для размещения на форме одного из трех поддерживаемых Delphi типов изображений: растровой картинки, пиктограммы или метафайла. Любой из этих типов изображения содержится в центральном свойстве компонента — picture. В свойстве canvas содержится канва, с помощью которой при необходимости программа может отредактировать растровое изображение (но не пиктограмму или метафайл!).

property Center: Boolean;

Указывает, надо ли центрировать изображение в границах компонента. Игнорируется, если Autosize=True или если Stretch =True и изображение не является пиктограммой (ICO)

property Canvas : TCanvas;

Содержит канву для прорисовки изображения

property Transparent: Boolean;

Запрещает/разрешает накладывать собственный фон изображения на фон компонента

property Proportional: Boolean; property Stretch: Boolean;

Разрешает/запрещает изменять размер изображения так, чтобы оно целиком заполнило клиентскую область компонента.

Разрешает/запрещает пропорционально уменьшать высоту и ширину изображения, если оно не может целиком уместиться в рабочей зоне компонента

property IncrementalDisplay: Boolean;

Разрешает/запрещает показ большого изображения по мере его загрузки Центральное свойство класса. Служит контейнером изображения

Никаких специальных методов у Image нет.

Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы.

Во время разработки формы иллюстрация задается установкой значения свойства picture путем выбора файла иллюстрации в стандартном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor . Чтобы запустить Image Editor, нужно в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.

Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации.

Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации. Например, инструкция

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (imagel).

Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Написать программу-фотоальбом, которая позволяет просматривать фотографии и оставлять к ним записи.

Замечание . Для работоспособности программы необходимо создать в папке программы текстовый файл comment. txt и сменить ему расширение на .dat ( comment . dat ); также необходимо разместить 10 графических файлов с расширением .bmp и имеющих имена от 1 до 10.

Данная программа представляет собой прототип программы-фотоальбома. Она представлена для ознакомления принципа использования Image.


Наиболее просто вывести иллюстрацию, которая находится в файле с расширением bmp, jpg или ico, можно при помошикомпонента image, значоккоторого находится на вкладке Additional палитры (рис. 10.11).


В табл. 10.8 перечислены основные свойства компонента image.

Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы.


Во время разработки формы иллюстрация задается установкой значения свойства picture путем выбора файла иллюстрации в стандартном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor (рис. 10.12). Чтобы запустить Image Editor, нужно в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.

Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации.

Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации.

1. Forml . Imaqel . Picture . LoadFromFile( 'e:\tenp\bart.bmp' )

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (image1).

Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Следующая программа, ее текст приведен в листинге 10.6, использует компонент image для просмотра иллюстраций, которые находятся в указанном пользователем каталоге. Диалоговое окно программы приведено на рис. 10.13.

Читайте также: