Как сделать превью?
От: greka  
Дата: 21.10.04 10:18
Оценка:
Необходимо на делфи сделать маленькую картинку из большой.

Как это сделать?

Поискал на форуме, тема уже поднималась, но предложенное решение здесь
Автор:
Дата: 11.08.03
, при уменьшении картинки меняло цвета. Получается совсем некрасиво...

Кто-то уже сталкивался с таким?
Вобщем буду рад любым идеям и советам.
Заранее спасибо.
Re: Как сделать превью?
От: Dimonka Верблюд  
Дата: 21.10.04 10:23
Оценка: 2 (1)
Здравствуйте, greka, Вы писали:

Смотря какого качества результат ты ожидаешь.. В целом сюда:
http://www.efg2.com/Lab/Library/Delphi/Graphics/ImageProcessing.htm#Resampling
Re: Как сделать превью?
От: vitorg Россия  
Дата: 21.10.04 10:39
Оценка:
Здравствуйте, greka, Вы писали:

G>Необходимо на делфи сделать маленькую картинку из большой.


G>Как это сделать?


G>Поискал на форуме, тема уже поднималась, но предложенное решение здесь
Автор:
Дата: 11.08.03
, при уменьшении картинки меняло цвета. Получается совсем некрасиво...


А если использовать именно StretchBlt, как там предложено в комментарии? Меня его качество вполне устраивало, к тому же если надо получить небольшие картинки, то проблем быть не должно, только для WIN9X надо предварительно вызвать SetStretchBltMode(Canvas.Handle,HALFTONE);
[ RSDN@Home 1.1.4 beta 3 rev. 185 ]
Jabber: vitorg@jabber.org
Re: Как сделать превью?
От: Leonid Troyanovsky  
Дата: 21.10.04 10:59
Оценка:
Здравствуйте, greka, Вы писали:

G>Необходимо на делфи сделать маленькую картинку из большой.


Если она действительно jpeg, то можно, например, Scale := jsEighth.
--
С уважением, LVT
Re[2]: Как сделать превью?
От: greka  
Дата: 21.10.04 13:07
Оценка:
G>>Поискал на форуме, тема уже поднималась, но предложенное решение здесь
Автор:
Дата: 11.08.03
, при уменьшении картинки меняло цвета. Получается совсем некрасиво...


V>А если использовать именно StretchBlt, как там предложено в комментарии? Меня его качество вполне устраивало, к тому же если надо получить небольшие картинки, то проблем быть не должно, только для WIN9X надо предварительно вызвать SetStretchBltMode(Canvas.Handle,HALFTONE);


Воспользовался

Bmp2.Canvas.StretchDraw( Bmp2.Canvas.ClipRect, Bmp1 );


Вполне сносно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.