|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2007
Сообщений: 51
|
Недостаточная сглаженность при smoothing=true
Привет всем!
Возникла проблемка. А именно - недостаточная сглаженность (пикселизация) при использовании стандартного smoothing. Суть: Есть фотография в виде Bitmap. Необходимо просто изменить её размер, не потеряв при этом её сглаженности. Реализация проста до безобразия: var myBitmap:Bitmap = image; // Есть Bitmap myBitmap.smoothing = true; // Ставим смуфинг // Делаем BitmapData var myBitmapData:BitmapData = new BitmapData( newBitmapWIDTH, newBitmapHEIGHT ); myBitmapData.draw(imgBitmap, matrix); return new Bitmap( myBitmapData ); // Готово Для примера: (Пока писал пост, думал что чем сильнее мы уменьшаем фотографию, тем сглаженнее она получается в результате. Создал показанную выше картинку - теперь вообще неясно стало) Подскажите, пожалуйста, оптимальное решение проблемы. Возможно использование сторонних библиотек и классов. |
|
|||||
У метода draw есть аргумент smoothing
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Nov 2007
Сообщений: 51
|
да. пробовал я и с ним) результата не дал)
var myBitmap:Bitmap = image; // Есть Bitmap myBitmap.smoothing = true; // Ставим смуфинг // Делаем BitmapData var myBitmapData:BitmapData = new BitmapData( newBitmapWIDTH, newBitmapHEIGHT ); myBitmapData.draw(imgBitmap.bitmapData, matrix, null, null, null, true); return new Bitmap( myBitmapData ); // Готово тоже разницы не было) |
|
|||||
Тут, вроде, не обробован еще один вариант:
не юзаем draw - не перерисовываем битмап-дату, просто растягиваем второй Bitmap с установленным smoothing=true; |
|
|||||
Регистрация: Nov 2007
Сообщений: 51
|
scale тут к сожалению не подходит) изображение нужно не просто вывести на экран, а, возможно, сохранить в файл) при этом всё равно придется в битмапДату отрисовывать (чтобы масштаб сохранить) и в сумме лучше от scale не становится (или я чего-то не допонял))))))
к тому же этот скейл памяти жрёт ужасно много)))))))))))))))))) |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
а слегка заблюрить уменьшенную копию не пробовали?
|
|
|||||
Регистрация: Nov 2007
Сообщений: 51
|
Цитата:
принесло небольшую пользу) однако это всё же блюр) размытие) а нужно немного другое) |
|
|||||
Я делал так... Качество норм...
private function loadComplete(e:Event):void { var loader:Loader = e.target.loader as Loader; loader.removeEventListener(Event.COMPLETE, loadComplete); var bm:Bitmap = new Bitmap((loader.content as Bitmap).bitmapData,"auto",true); if (pars.width) { if(bm.width > pars.width){ bm.width = pars.width; bm.scaleY = bm.scaleX; } } if (pars.height) { if(bm.height > pars.height){ bm.height = pars.height; bm.scaleX = bm.scaleY; } } var bd2:BitmapData = new BitmapData(bm.width, bm.height, true); bd2.draw(bm, bm.transform.matrix); bm = null; encode(bd2); } private function encode(bd:BitmapData):void { var encoder:JPGEncoder = new JPGEncoder(Main.params.quality); imageBytes = encoder.encode(bd); imageResized(new Event(Event.COMPLETE)); } |
|
|||||
Регистрация: Nov 2007
Сообщений: 51
|
Партизан, спасибо за интересный способ, однако на выходе получается абсолютно такая же фотография с таким же качеством и смуффингом)
хотя почему же она должна отличаться, если и у меня, и у Вас используется один и тот же смуффинг в одном и том же месте))))))))) |
|
|||||
Цитата:
Он как-то хитро ресайзит BitmapData... Результат сохранения через JPEGEncoder(100): [IMG]http://img269.**************/img269/2354/93790074.jpg[/IMG] Photoshop(SaveForWeb JPEG quality:100, optimized:no,progressive:no): [IMG]http://img718.**************/img718/7651/56324315.jpg[/IMG] |
Часовой пояс GMT +4, время: 20:06. |
|
« Предыдущая тема | Следующая тема » |
|
|