![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Всем привет.
Много всего написано но ничего не понятно... Есть картинка в файле. Нужно ее вывести на форму в размерах 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
|
|||
|
|||
![]() Ну, когда я делал такую штуку, то меня качество StretchDraw устроило. Там только надо аккуратно рассчитать размер новой картинки. Если такое качество не устроит, то где-то видел библиотеку, которая позволяет масштабировать картинку с применением разных фильтров. Правда тут такая штука, что нет фильтра, который тебе гарантирует наилучшее качество результата. В зависимости от самой картинки, лучший результат дают разные фильтры.
|
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
|||
|
|||
![]() Дык ты пользуешься встроенным алгоритмом TImage. Он действительно дает на удивление фиговый результат. Я же говорю про ресайзинг "руками". Т.е. загрузил картинку в память, сразу ее переразмерил и сохранил в файл. Потом грузи из файла и без переразмеривания сразу показывай.
|
#5
|
||||
|
||||
![]() если выставить режим HALFTONE для StretchBlt через SetStretchBltMode, то результат будет заметно лучше.
Пишу программы за еду. __________________ |
#6
|
|||
|
|||
![]() Цитата:
|