![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2014
Сообщений: 12
|
Задача: пользователь загружает картинку во флеш, она обрезается маской.
После, при нажатии кнопки, должна выводится обрезанная картинка. Но выводится та же, то есть без изменений. Пожалуйста подскажите, как исправить? var loader:Loader = new Loader(); mc.mc1.mc2.addChild(loader); var fr:FileReference = new FileReference(); fr.addEventListener(Event.SELECT, onselect); fr.addEventListener(Event.COMPLETE, oncomplete); import_btn.addEventListener(MouseEvent.CLICK, onloade); function onloade(e:MouseEvent) { var filefilter:FileFilter = new FileFilter("JPG Files","*.jpg"); fr.browse([filefilter]); } function onselect(e:Event) { fr.load(); } function oncomplete(e:Event) { var byteArray:ByteArray = e.currentTarget["data"]; loader.loadBytes(byteArray); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,mycomplete); } function mycomplete(e:Event) { export_btn.addEventListener(MouseEvent.CLICK, onsave); } function onsave(e:MouseEvent) { var bitmabdata:BitmapData = new BitmapData(loader.width,loader.height,true,0); bitmabdata.draw(loader); var jpdencoder:JPGEncoder = new JPGEncoder(100); var mybyte:ByteArray = jpdencoder.encode(bitmabdata); var myfile:FileReference=new FileReference(); myfile.save(mybyte,"test.jpg"); } |
|
|||||
|
Вот тут я так понял вы добавляете вашу картинку в список отображения
Тогда при сохранении в функции onsave вам нужно снимать BitmapData не с loader, а с mc.mc1.mc2, смотря к какому child'y у вас применяется маска. Добавлено через 1 минуту Цитата:
|
|
|||||
|
Регистрация: Mar 2014
Сообщений: 12
|
Немного переделал конец кода, теперь выводит картинку уже с маской, не не того размера которого нужно. То есть, та часть что обрезалась маской остается белой и чем больше картинка тем больше белой части.
Возможно ли сделать так, чтоб снимок делался только вокруг картинки? var myfile:FileReference=new FileReference(); function onsave(e:MouseEvent):void { var bitmabdata:BitmapData = new BitmapData(mc.width,mc.height); bitmabdata.draw(mc); var encoder:JPGEncoder = new JPGEncoder(); var mybyte:ByteArray = encoder.encode(bitmabdata); myfile.save(mybyte,"test.jpg"); } ![]() Добавлено через 2 минуты Да именно так, нарисована руками ![]() |
|
|||||
|
Регистрация: Mar 2014
Сообщений: 12
|
Разобрался! Огромное спасибо!
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:10. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|