Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.01.2016, 17:21
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию Качество уменьшенной картинки (Stretch)

Всем привет.
Много всего написано но ничего не понятно...
Есть картинка в файле. Нужно ее вывести на форму в размерах 40х50 без особой потери качества. Именно в сохранении качества собственно и вопрос. Спасибо.

Код:
//*****Загрузить аватар***************
Memo := TMemoryStream.Create;
idHTTP1.Get('http://test.ru/res/img/avatar/'+Form1.ZQuery1.fieldbyname('avatar').AsString+'', memo);
idHTTP1.Disconnect;
Memo.SaveToFile('images\avatars\'+Form1.ZQuery1.fieldbyname('avatar').AsString);
memo.free;
//*************************************
avatar.Picture.LoadFromFile('images\avatars\'+Form1.ZQuery1.fieldbyname('avatar').AsString);
Ответить с цитированием
  #2  
Старый 12.01.2016, 20:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,031
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, когда я делал такую штуку, то меня качество StretchDraw устроило. Там только надо аккуратно рассчитать размер новой картинки. Если такое качество не устроит, то где-то видел библиотеку, которая позволяет масштабировать картинку с применением разных фильтров. Правда тут такая штука, что нет фильтра, который тебе гарантирует наилучшее качество результата. В зависимости от самой картинки, лучший результат дают разные фильтры.
Ответить с цитированием
  #3  
Старый 13.01.2016, 00:46
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, когда я делал такую штуку, то меня качество StretchDraw устроило. Там только надо аккуратно рассчитать размер новой картинки. Если такое качество не устроит, то где-то видел библиотеку, которая позволяет масштабировать картинку с применением разных фильтров. Правда тут такая штука, что нет фильтра, который тебе гарантирует наилучшее качество результата. В зависимости от самой картинки, лучший результат дают разные фильтры.
в смысле пропорции рассчитать? я выставил proportion и та же фигня
Ответить с цитированием
  #4  
Старый 13.01.2016, 02:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,031
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Дык ты пользуешься встроенным алгоритмом TImage. Он действительно дает на удивление фиговый результат. Я же говорю про ресайзинг "руками". Т.е. загрузил картинку в память, сразу ее переразмерил и сохранил в файл. Потом грузи из файла и без переразмеривания сразу показывай.
Ответить с цитированием
  #5  
Старый 13.01.2016, 08:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

если выставить режим HALFTONE для StretchBlt через SetStretchBltMode, то результат будет заметно лучше.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 13.01.2016, 16:21
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
если выставить режим HALFTONE для StretchBlt через SetStretchBltMode, то результат будет заметно лучше.
Можно подробнее что и как выставлять?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter