我正在研究AS3中的一些生成艺术项目,并且我一直遇到位图质量限制的问题。它们不像矢量那样可扩展或可编辑。是否有一个类或库可以用来获取Sprite对象的图形并将它们导出为SVG格式?其他常见的矢量格式也是可以接受的。
也非常感谢使用样本。
编辑:请注意,我使用的是FlashDevelop,而不是Adobe Flash CS。我正在寻找程序化的解决方案。
答案 0 :(得分:4)
我正在尝试自己导出到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);
}
这允许我通过传递点数组来制作三角形和其他形状
答案 1 :(得分:2)
如果你正在使用图形API(和/或使用premade sprites w。矢量艺术)进行生成艺术,那么最简单的方法就是以PDF格式打印。这将保留向量,您可以稍后导入到Illustrator之类的内容中进行最后的操作。我用这种方式完成了游戏的截图,效果很好。裁剪可能存在一些问题,但如果您调整缩放比例,那么这些问题应该是可以避免的。
答案 2 :(得分:1)
正如grapefrukt所说,PDF也是我的第一个。
如果您不想使用print作为pdf(这是一种笨拙的导出方式),还有alivepdf可能有效。
另一种选择是使用DEGRAFA库,但我认为您需要先使用库生成图形,但它将为您提供使用SVG格式导入和导出的功能。
答案 3 :(得分:0)
查看AS3 SWF Shape Export - SVGhapeExporter
应该做得很好(example code here)。
答案 4 :(得分:0)
不幸的是,一旦采用位图格式,您就无法将光栅图形完美地转换为矢量。有一些工具试图完成这项任务,但它们取得了不同的结果。 Flash包含一个内置的“跟踪位图”功能,可以执行此任务,选择图像后,转到“修改”按钮。位图&gt;跟踪位图'。您将需要使用不同的选项来尝试获得最佳效果,但即使这样,也可能需要手动调整以整理伪像和毛刺。
This tutorial对每个选项的作用有一个相当不错的概述。
答案 5 :(得分:0)
在Saving Flash graphics as image files at runtime上查看这篇文章。它还有一个live demo.
此外,试试这个FLASH save frame, to image (tiff, bmp, jpg, gif, png)
答案 6 :(得分:0)
我有answered this differently myself earlier,但是我自己尝试过这个工具而没有太多运气,我去寻找不同的东西,并在wonderfl找到了名为 SWF2SVG 的项目。它需要上传的SWF并使用as3swf library将其转换为SVG路径。
指向SWF2SVG工具的链接: http://wonderfl.net/c/sPjI