![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему StretchBlt при использовании портит рисунок?
Hatawa © (2003-07-20 18:17:00)
Когда с помощью него копирую из очень большого рисунка в маленький - изображение очень сильно портится.
Заранее спасибо,
Наталья
Hatawa (2003-07-20 18:49:00) [21]
2Paladin
Ну и шутник же вы, батенька.
А тогда скажите мне, хотя бы примерно - как решить такую проблему:
Есть большие рисунки (приблизит. 2048*2048)
Нужно их масштабировать и (т.к.) на экране виден только кусок перетягивать (как в ACDSee), но понять, как там у них всё это сделано не получается.
Если масштабировать вручную полностью а потом при перетягивании делать bitblt - всё нормально... но! при увеличении результирующего рисунка до 6000*6000 говорят "Out of resources".
Пыталась StretchBlt делать - всё хорошо, даже почти не мигает при перетаскивании - но ... увы... портит рисунок.
Вот и мучаюсь тут....
iXuSs (2003-07-20 18:45:00) [22]
StretchBlt использует очень простой и быстрый алгоритм растягивания и сжимания. Это называется resize. Есть же алгоритм resample. Его качество зависити от фильтров, которыми можно и воспрользоваться. Я не знаю, что конкретно посоветовтаь тебе, так как не знаю твоей задачи. Опише подробнее, в каких целях тебе это требуется и тогда можно будет без проблем подобрать решение.
Palladin (2003-07-20 18:44:00) [23]
> А как-нибудь можно этого избежать?
Не использовать StretchBlt
Hatawa (2003-07-20 18:31:00) [24]
Да и к тому же - у меня рисунок почти весь светло-серый (там черных пикселей почти нет)
А после работы StretchBlt появляются линии черных точек...
Palladin (2003-07-20 18:29:00) [25]
потому что при уменьшении просто отбрасываются лишние пикселы, без всякой дополнительной обработки, что и приводит к порче изображения...
Hatawa (2003-07-20 18:29:00) [26]
2Paladin
А как-нибудь можно этого избежать?