Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.03.2014, 13:55
Merican вне форума Посмотреть профиль Отправить личное сообщение для Merican Найти все сообщения от Merican
  № 1  
Ответить с цитированием
Merican

Регистрация: Mar 2014
Сообщений: 12
Question Не правильно выводит картинку

Задача: пользователь загружает картинку во флеш, она обрезается маской.
После, при нажатии кнопки, должна выводится обрезанная картинка. Но выводится та же, то есть без изменений.
Пожалуйста подскажите, как исправить?

Код AS3:
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");
}

Старый 05.03.2014, 14:08
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
А где в вашем коде маска?
__________________
тут я

Старый 05.03.2014, 14:10
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 3  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Вот тут я так понял вы добавляете вашу картинку в список отображения
Код AS3:
mc.mc1.mc2.addChild(loader);
Тогда при сохранении в функции onsave вам нужно снимать BitmapData не с loader, а с mc.mc1.mc2, смотря к какому child'y у вас применяется маска.

Добавлено через 1 минуту
Цитата:
А где в вашем коде маска?
Скорее всего нарисована руками в кадрах.

Старый 05.03.2014, 16:16
Merican вне форума Посмотреть профиль Отправить личное сообщение для Merican Найти все сообщения от Merican
  № 4  
Ответить с цитированием
Merican

Регистрация: Mar 2014
Сообщений: 12
Немного переделал конец кода, теперь выводит картинку уже с маской, не не того размера которого нужно. То есть, та часть что обрезалась маской остается белой и чем больше картинка тем больше белой части.
Возможно ли сделать так, чтоб снимок делался только вокруг картинки?

Код AS3:
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 минуты
Да именно так, нарисована руками
Цитата:
Сообщение от alexandrratush Посмотреть сообщение

Скорее всего нарисована руками в кадрах.

Старый 05.03.2014, 16:38
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 5  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Код AS3:
var bitmabdata:BitmapData = new BitmapData(mc.width,mc.height);
Вы ведь и создаёте такую большую картинку. А вам нужно отталкиваться от размеров маски и её позиции.

Старый 05.03.2014, 16:53
Merican вне форума Посмотреть профиль Отправить личное сообщение для Merican Найти все сообщения от Merican
  № 6  
Ответить с цитированием
Merican

Регистрация: Mar 2014
Сообщений: 12
Разобрался! Огромное спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.