我正在AS3中从事一些生成艺术项目,并且我一直遇到位图质量限制的问题。它们无法像矢量那样进行扩展或编辑。我是否可以使用类或库来获取Sprite对象的图形并将其导出为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);
}
这使我可以通过传递点数组来制作三角形和其他形状
如果您正在使用图形API(和/或使用带有矢量艺术的预制精灵)进行生成艺术,则要获得这些图形,最简单的方法是将其打印为PDF。这将保留矢量,您以后可以将其导入到Illustrator之类进行最终修饰。我已经用这种方式完成了游戏的屏幕截图,并且效果很好。裁剪可能会有一些问题,但是如果您调整事物的缩放比例,则应该避免这些问题。
[看看AS3 SWF Shape Export-SVGhapeExporter
应该很好(example code here)。
不幸的是,一旦使用位图格式,就无法完美,轻松地将光栅图形反向工程为矢量。有一些工具可以尝试完成此任务,但结果却不尽相同。 Flash包含一个内置的“跟踪位图”功能,该功能将在选择图像后执行此任务,请转到“修改>位图>跟踪位图”。您将需要尝试不同的选项,以尝试获得最佳效果,但即使如此,它仍可能需要手动调整以收拾工件和故障。
[This tutorial对每个选项的作用都有相当好的概述。
[我有answered this differently myself earlier,但是我自己尝试了该工具,但没有很多运气,我开始寻找不同的东西,并在wonderfl上找到了这个名为SWF2SVG的项目。它采用上载的SWF,并使用as3swf library将其转换为SVG路径。
链接到SWF2SVG工具:
http://wonderfl.net/c/sPjI您解决了这个问题吗?有没有一种方法可以在不上传的情况下从本地计算机提取矢量图像?是否可以使用Java来实现,例如处理?