Delphi форматы графических файлов
Февраль 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.
Читайте также: