![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2010
Сообщений: 107
|
Добрый день! Столкнулся с проблемой - при масштабировании Bitmap изображение обзаводится острыми выступающими пикселами. Как можно с этим бороться? К слову для масштабирования сначала использовал простое изменение width и height. Потом попробовал методом draw срисовывать с оригинального изображения с матрицей со свойством scale и с включенным smooth. Видимой разницы не нашел, одно и то же - пиксельные края. Может кто из вас знает, как гладко масштабировать? Может использовать какие-то фильтры? Ели да, то буду рад примеру кода, так как не особо понимаю пока как с фильтрами работать.
|
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
перед тем как масштабировать картинку, включить у нее свойство smoothing
Зачем тут матрица вообще |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 107
|
goodguy, Спасибо, помогло! А матрица ради масштабирования. Просто попробовал двумя разными способами
Последний раз редактировалось Light; 18.08.2011 в 13:17. |
|
|||||
|
делал для себя не так давно библиотечку одну..билинейное сглаживание (бикубическое там тож есть, но чот не работает)..работает на шейдерах..на входе метода битмапдата и нужный скейл, на выходе новая битмапдата, уже сжатая и сглаженная
http://cleptoman.ru/bitmap_utils.swc
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
|
|
|||||
|
.
|
Крутотень. А что по тестам?
|
|
|||||
|
вот не тестил..по задаче они не особо актуальны были.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Попробовал библиотеку, работает отлично, и довольно шустро.
Результаты: trace("original width: " + canvas.width + ", original height: " + canvas.height); // original width: 3710, original height: 1638 var time:int = getTimer(); var finalBMD: BitmapData = BitmapDataUtil.bilinearResample(canvas, settings.scaling); trace(getTimer() - time + " time, w:" + finalBMD.width + " h: " + finalBMD.height); // 91 time w:2133 h: 941 |
|
|||||
|
чот все-равно много..имеет смысл наверно докрутить методами с ассинхронным выполнением
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
кто не в курсе - "smoothing = true" делает ту же самую билинейную интерполяцию
![]()
__________________
Загружаем картинки, минуя ошибки безопасности |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|