AS3-将精灵导出或保存为SVG或其他矢量格式

问题描述 投票:4回答:8

我正在AS3中从事一些生成艺术项目,并且我一直遇到位图质量限制的问题。它们无法像矢量那样进行扩展或编辑。我是否可以使用类或库来获取Sprite对象的图形并将其导出为SVG格式?其他常见的矢量格式也可以接受。

使用示例也将不胜感激。

编辑:请注意,我使用的是FlashDevelop,而不是Adobe Flash CS。我正在寻找一种编程解决方案。

actionscript-3 svg vector-graphics generative-art
8个回答
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);
    }

这使我可以通过传递点数组来制作三角形和其他形状


2
投票

如果您正在使用图形API(和/或使用带有矢量艺术的预制精灵)进行生成艺术,则要获得这些图形,最简单的方法是将其打印为PDF。这将保留矢量,您以后可以将其导入到Illustrator之类进行最终修饰。我已经用这种方式完成了游戏的屏幕截图,并且效果很好。裁剪可能会有一些问题,但是如果您调整事物的缩放比例,则应该避免这些问题。


1
投票

正如grapefrukt所建议的,PDF也是我的第一个。

如果您不想将print作为pdf使用(这是一种笨拙的导出方式),也可以使用alivepdf

另一个选择是使用DEGRAFA库,但是我认为您首先需要使用该库来生成图形,但是它将使您能够使用SVG格式导入和导出。


0
投票

[看看AS3 SWF Shape Export-SVGhapeExporter应该很好(example code here)。


0
投票

不幸的是,一旦使用位图格式,就无法完美,轻松地将光栅图形反向工程为矢量。有一些工具可以尝试完成此任务,但结果却不尽相同。 Flash包含一个内置的“跟踪位图”功能,该功能将在选择图像后执行此任务,请转到“修改>位图>跟踪位图”。您将需要尝试不同的选项,以尝试获得最佳效果,但即使如此,它仍可能需要手动调整以收拾工件和故障。

[This tutorial对每个选项的作用都有相当好的概述。


0
投票

0
投票

[我有answered this differently myself earlier,但是我自己尝试了该工具,但没有很多运气,我开始寻找不同的东西,并在wonderfl上找到了这个名为SWF2SVG的项目。它采用上载的SWF,并使用as3swf library将其转换为SVG路径。

链接到SWF2SVG工具:

http://wonderfl.net/c/sPjI

0
投票

您解决了这个问题吗?有没有一种方法可以在不上传的情况下从本地计算机提取矢量图像?是否可以使用Java来实现,例如处理?

© www.soinside.com 2019 - 2024. All rights reserved.