Как экспортировать изображение из swf с помощью ActionScript3 / PHP?

у меня есть еще одна вещь для более продвинутых ребят, чем я;)

Я разрабатываю простое флеш-приложение для создания собственного герба. Когда закончите создание, было бы неплохо сохранить его как изображение на клиентском компьютере или в базе данных, я еще не уверен. Проблема заключается в создании изображения из содержимого SWF - я имею в виду не весь контент, а только его часть, где находится сертификат подлинности. Я нашел несколько примеров в Интернете с использованием некоторых кодировщиков изображений и PHP, но я не могу понять, как это работает. Может ли кто-нибудь так любезно объяснить мне основные принципы этого? Я хочу сделать это как можно проще.


person Dungeo    schedule 28.04.2009    source источник


Ответы (2)


Сначала нарисуйте изображение (Sprite или MovieClip и т. Д.) В BitmapData:

var b: BitmapData = new BitmapData(640, 480, false, 0xffffffff); 
b.draw(mcToBeSaved);

Затем используйте, например, as3corelib для кодирования BitmapData в файлы PNG или JPG.

var ba: ByteArray = PNGEncoder.encode(b);

Затем для Flash 10 вы можете немедленно заставить пользователя сохранить изображение в файл, используя метод сохранения FileReference.

person Randy Sugianto 'Yuku'    schedule 29.04.2009
comment
Думаю, я понимаю, но похоже, что в изображение сохраняется только один фрагмент ролика, разве вы не знаете, как я могу сделать это для обрезки сцены, скажем, прямоугольной области, которая может содержать больше фрагментов ролика? что-то вроде скриншота, но не целую область фильма ... все равно спасибо - person Dungeo; 02.05.2009
comment
этап также считается отображаемым объектом, поэтому вы можете нарисовать этап на основе растровых данных. используйте параметр matrix функции рисования, чтобы установить смещение прямоугольника обрезки. - person Randy Sugianto 'Yuku'; 05.05.2009

В последнее время этот вопрос стал популярным. Поэтому я не буду полностью повторять всю эту информацию, инструкции по сохранению данных изображения, как только вы получили их как BitmapData, здесь:

Как я могу отправить ByteArray (из Flash) и некоторые данные формы на php?

Но сначала, чтобы получить данные изображения, вам нужно вытащить их из любого MovieClip / Sprite, где бы он ни находился. Для этого вам просто нужно:

var myBitmapData: BitmapData = new BitmapData (желаемая ширина, желаемая высота, isTransparent, backgroundColor); myBitmapData.draw (mcToBeSavedToImage);

Где mcToBeSavedToImage - это фрагмент ролика, который нужно превратить в изображение. Ссылка на BitmapData находится здесь, если она вам нужна - у нее есть другие примеры: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

Надеюсь, это поможет!

person quoo    schedule 29.04.2009