2012-03-16 3 views
4

Я работаю над некоторыми генерирующими арт-проектами в AS3, и у меня возникают проблемы с ограничениями качества растровых изображений. Они не являются масштабируемыми или редактируемыми, как векторы. Есть ли класс или библиотека, которые я могу использовать, чтобы взять графику объекта Sprite и экспортировать их в формат SVG? Также приемлемы другие распространенные векторные форматы.AS3 - экспорт или сохранение спрайта в формате SVG или другом векторном формате

Образец использования также будет принята с благодарностью.

Редактировать: Обратите внимание, что я использую FlashDevelop, а не Adobe Flash CS. Я ищу программное решение.

ответ

4

Я пытаюсь экспортировать в svg самостоятельно и обнаруживаю, что это очень сложно найти экспортера svg, так как это в значительной степени просто xml.

Я столкнулся с xgraphics, хотя это может быть полезно.

На самом деле вам нужен только класс SVG. Он пытается имитировать графический класс в as3, но я обнаружил, что мне нужно добавить класс draw polygons.

/** 
    * graphics 
    */ 
    public function drawPolygon($points:Array):void { 
     var $pointsString:String = ""; 
     for each (var $pt:Point in $points) { 
      $pointsString += (" " + $pt.x +"," + $pt.y); 
     } 
     var xml:XML = new XML('<polygon points="' + $pointsString + '" fill="' + uintToCSS2Color(fillColor) + '" stroke="' + uintToCSS2Color(lineColor) + '" stroke-width="' + strokeWidth + '"/>'); 
     this.xml.appendChild(xml); 
    } 

это позволяет мне сделать треугольники и другие формы, передавая массив точек

0

Посмотрите на AS3 SWF Shape Export - SVGhapeExporter должен хорошо подойдет (example code here).

+0

Это будет экспортировать только символы, как они содержатся в SWF, а не графика генерируется во время выполнения. Это все еще довольно мило! – grapefrukt

0

К сожалению, один раз в растровом формате вы не можете полностью и просто преобразовать растровый графический объект в вектор. Есть некоторые инструменты, которые пытаются выполнить эту задачу, но они достигают смешанных результатов. Flash содержит встроенную функцию «Трассировка растрового изображения», которая будет выполнять эту задачу, с выбранным изображением перейдите в «Изменить»> «Растровое изображение»> «Трассировочный битмап». Вам нужно будет играть с различными параметрами, чтобы попытаться достичь наилучшего результата, но даже тогда может потребоваться ручная настройка, чтобы убрать артефакты и сбои.

This tutorial имеет достаточно хороший обзор того, что будет делать каждый вариант.

+0

Я не пытаюсь преобразовать растровые изображения в векторы, я пытаюсь сохранить векторные спрайты как векторы. Растровые изображения используются для отображения, потому что это быстрее для большинства моих целей. –

2

Если вы используете генеративное искусство, используя графический API (и/или используя готовые спрайты с векторным искусством), самым простым способом получить их является печать в формате PDF. Это сохранит векторы, и вы сможете впоследствии импортировать что-то вроде Illustrator, чтобы сделать последние штрихи. Я сделал скриншоты своих игр таким образом, и это работает очень хорошо. Могут быть некоторые проблемы с обрезкой, но их следует избегать, если вы настраиваете масштабирование вещей.

+0

Это полезно, хотя я бы предпочел программный способ сделать это. И если у кого-то нет библиотеки, чтобы сделать это, возможно, я должен это сделать. –

0

Посмотрите на эту статью на Saving Flash graphics as image files at runtime. Она также имеет live demo.

Кроме того, попробуйте этот FLASH save frame, to image (tiff, bmp, jpg, gif, png)

+0

Я уже знаю, как сохранять пиксельные изображения в AS3. Мне нужен способ сохранить векторы спрайта, желательно в формате .svg. –

1

, как grapefrukt предложил, PDF был мой первый, хотя тоже.

Если вы не хотите использовать печать в формате pdf (это немного неуклюжий способ экспорта), также существует alivepdf, который может работать.

другой вариант заключается в использовании библиотеки DEGRAFA, но я думаю, вам нужно будет сгенерировать графику с использованием библиотеки, но она даст вам возможность импорта и экспорта ti с использованием формата SVG.

0

Я имел answered this differently myself earlier, но попробовав этот инструмент сам и не имея много удачи я отправился на охоту за что-то другое, и нашел этот проект под названием SWF2SVG на wonderfl. Он загружает SWF-файл и преобразует его в SVG-путь, используя as3swf library.

Ссылка на инструмент SWF2SVG:http://wonderfl.net/c/sPjI

Смежные вопросы