![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
M1ndAction |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 19.1.2008 Репутация: нет Всего: нет |
Добрый день,
вопрос в следующем: как можно сохранить растянутое изображение средствами GDI+. Поясню: мы можем выводить в произвольную область изображение с помощью DrawImage, но как сохранить изображение на жесткий диск в нужных пропорциях? Понятно, что можно сохранить процедурой Save, но она сохраняет то изображение, что было загружено перед этим в Image, точней первоначальных размеров. Для чего это нужно? Есть программа с фоновой картинкой (которая сейчас выводится через обычную TCanvas), но т.к. программа может работать под различными разрешениями, соотвественно картинку приходится тянуть. Я взял некий средний размер (1280*1024 - для классических мониторов и 1280*800 для широкоформатных) для фоновой картинки, и соответственно расстягиваю картинку по всему экрану. Проблема в том, что на меньших разрешениях, качество картинки сильно падает (вывожу с помощью Canvas.StretchDraw), т.к. на фоне присутствует текст, и верхняя часть букв как бы "съедается". Но воспользовавшись DrawImage из GDI+, результат получается отличный по качеству вывода, но есть некоторые глюки, в которые я сейчас вдаваться не буду, плюс, что самое главное, на форме присутствуют TImage (кнопки), и у них качество еще больше ухудшается. Поэтому возникла мысль, что перед непосредственным запуском программы, масштабировать всю графику (картинок не много), а затем классическим спосом - через TCanvas - отображать уже отмасштабированные картинки. Либо тогда может посоветуете хороший алгоритм для сглаживания, т.к. по сути только это и нужно (алгоритм, которым я пользовался не выдавал нужного результата, просто размывал картинку)? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Можно попробовать нарисовать картинку на другом битмапе созданном уже нужного размера и сохранять последний в файл.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
M1ndAction |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 19.1.2008 Репутация: нет Всего: нет |
Да, спасибо, Alexeis, именно так уже и сделал
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |