我正在研究AS3中的一些生成艺术项目,并且我一直遇到位图质量限制的问题。它们不是可扩展或可编辑的矢量方式。是否有一个类或库可用于获取Sprite对象的图形并将它们导出为SVG格式?其他常见的矢量格式也可以接受。AS3 - 将SVG导出或保存为SVG或其他矢量格式
使用样本也将不胜感激。
编辑:请注意,我使用FlashDevelop而不是Adobe Flash CS。我正在寻找一个程序化解决方案。
我正在研究AS3中的一些生成艺术项目,并且我一直遇到位图质量限制的问题。它们不是可扩展或可编辑的矢量方式。是否有一个类或库可用于获取Sprite对象的图形并将它们导出为SVG格式?其他常见的矢量格式也可以接受。AS3 - 将SVG导出或保存为SVG或其他矢量格式
使用样本也将不胜感激。
编辑:请注意,我使用FlashDevelop而不是Adobe Flash CS。我正在寻找一个程序化解决方案。
我试图导出到svg自己,发现它有点令人惊讶,它很难找到一个svg导出器,因为它几乎就是xml。
虽然我遇到xgraphics,但它可能会有所帮助。
实际上你只需要SVG类。它试图模仿as3中的图形类,但我发现我需要添加一个绘制多边形类。
/**
* 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);
}
这让我通过传递点
看看AS3 SWF Shape Export - SVGhapeExporter
应该做得很好(example code here)。
不幸的是,一旦位图格式化,你不能完美和容易地将光栅图形逆向工程化为矢量。有一些工具试图完成这项任务,但他们取得了不同的结果。 Flash包含一个内置的“跟踪位图”功能,该功能将执行此任务,并选择图像,然后转到“修改>位图>跟踪位图”。您需要使用不同的选项来尝试获得最佳结果,但即使这样,也可能需要手动调整才能整理伪影和毛刺。
This tutorial对每个选项的作用都有相当好的概述。
我不想将位图转换为矢量,我试图将包含矢量的精灵保存为矢量。位图用于显示,因为它在我的大部分用途中速度更快。 – 2012-03-17 03:39:55
如果您正在使用图形API(和/或使用premade sprites w。vector art)进行生成艺术,那么最简单的方法是将其打印为PDF。这将保留矢量,您可以稍后导入到像Illustrator这样的东西来做最后的修改。我用这种方式完成了我的游戏截图,效果非常好。裁剪可能存在一些问题,但如果您调整事物的缩放比例,则应该避免这些问题。
这很有帮助,虽然我会非常喜欢用编程的方式来做到这一点。如果没有人有图书馆这样做,也许我应该做一个。 – 2012-03-17 03:33:33
看看Saving Flash graphics as image files at runtime这篇文章。它也有一个live demo.
此外,试试这个FLASH save frame, to image (tiff, bmp, jpg, gif, png)
我已经知道如何在AS3中保存基于像素的图像。我需要一种方法来保存精灵的矢量,最好以.svg格式保存。 – 2012-03-21 15:07:41
我answered this differently myself earlier,但阵列,使三角形等形状尝试过该工具自己,没多少希望我四处寻找不同的东西,发现这个项目名为SWF2SVG on wonderfl。它使用上传的SWF并使用as3swf library将其转换为SVG路径。
链接到SWF2SVG工具:http://wonderfl.net/c/sPjI
这将只因为它们包含在SWF出口的符号,在运行时生成的不是图形。虽然它仍然非常甜蜜! – grapefrukt 2012-03-17 00:40:44