![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
GDI+ - это новая графическая технология от фирмы Microsoft, предоставляющая дополнительные графические возможности программам независимых разработчиков. Она входит в состав Windows XP, а для большинства других операционных систем требуется установка дополнительного файла. Если Вы работаете в Windows 98, Windows ME, Windows NT4.0 SP6 или Windows 2000, то скопируйте файл gdiplus.dll (1,56 МБ/791 КБ(в архиве)) в папку с программой или в системную папку (любую по выбору /windows/system32, /windows, для Win2000 /WINNT/system32, /WINNT).
Библиотека является объектной потому для доступа к ее объектам необходимо использовать интерфейсы. Нужные для работы модули прикреплены в архиве (headers.rar). Распакуйте его в папку с программой. Из них нужно подключать GDIPAPI, GDIPOBJ, GDIPUTIL. Поскольку классы GDI+ не совместимы с VCL, то удобно преобразовывать изображения в формат BMP, который можно загрузить в поток, а вот загружать и сохранять из потока в поток делфийский класс TBitmap уже умеет. Остается одна проблема, для работы с потоками класс должен уметь реализовывать интерфейс IStream. К сожалению все наследники абстрактоного класса TStream его не реализуют, для этого нужно использовать специальный класс-адаптер TStreamAdapter, который это умеет делать. Итак загружаем изображение.
Для справки, в GDI+ доступны декодеры:
После обработки изображений вам наверняка нужно его сохранить в файл. Для этого проделываем обратные операции. Записываем Битмап(Bitmap : TBitmap) в поток, из потока создаем объект изображение GDI+ TGPImage, и используя его метод Save сохраняем его в файл. В процедуру передается параметр ftype который определяет тип сохраняемой картинки из тех что поддерживаются енкодером. Енкодер поддерживает следующие форматы:
В заключение хочу заметить что методы Save, Load, конструктор Create класса TGPImage перегружены для использования как потоков так и строк-путей к файлу с различными расширенными параметрами так и без них. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Облегченный вариант от Snowy для конвертации BMP->PNG
И пример использования.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
JohnJ2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.4.2009 Репутация: 1 Всего: 1 |
При загрузке png из потока TStreamAdapter неверно справляется со своей задачей. Вот тут решение проблемы, если кому-то понадобится: http://forum.vingrad.ru/forum/topic-256386/kw-gdi+-png.html.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |