4

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

使用示例也将不胜感激。

编辑:请注意,我使用的是 FlashDevelop 而不是 Adob​​e Flash CS。我正在寻找一个程序化的解决方案。

4

7 回答 7

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);
    }

这允许我通过传递点数组来制作三角形和其他形状

于 2012-03-24T02:40:58.907 回答
2

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

于 2012-03-17T00:39:36.193 回答
1

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

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

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

于 2012-03-21T18:34:06.107 回答
0

看看AS3 SWF Shape Export -SVGhapeExporter应该做得很好(示例代码在这里)。

于 2012-03-16T23:14:45.950 回答
0

不幸的是,一旦采用位图格式,您就不能完美而轻松地将光栅图形反向工程为矢量。有一些工具试图完成这项任务,但结果好坏参半。Flash 包含一个内置的“跟踪位图”功能,该功能将执行此任务,选择图像后,转到“修改 > 位图 > 跟踪位图”。您将需要使用不同的选项来尝试并获得最佳结果,但即便如此,它也可能需要手动调整以清理伪影和故障。

本教程对每个选项的作用进行了相当好的概述。

于 2012-03-16T23:17:35.277 回答
0

查看这篇关于在运行时将 Flash 图形保存为图像文件的文章。它还有一个现场演示。

此外,试试这个FLASH 保存帧,图像(tiff、bmp、jpg、gif、png)

于 2012-03-21T14:04:03.390 回答
0

我之前自己回答过这个问题,但是我自己尝试了这个工具并且没有太多运气,我去寻找不同的东西,并在 Wonderfl 上找到了这个名为SWF2SVG项目。它采用上传的 SWF 并使用as3swf 库将其转换为 SVG 路径。

SWF2SVG 工具链接: http ://wonderfl.net/c/sPjI

于 2014-02-21T22:43:37.923 回答