2012-03-16 36 views
4

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

使用样本也将不胜感激。

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

回答

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

这让我通过传递点

0

不幸的是,一旦位图格式化,你不能完美和容易地将光栅图形逆向工程化为矢量。有一些工具试图完成这项任务,但他们取得了不同的结果。 Flash包含一个内置的“跟踪位图”功能,该功能将执行此任务,并选择图像,然后转到“修改>位图>跟踪位图”。您需要使用不同的选项来尝试获得最佳结果,但即使这样,也可能需要手动调整才能整理伪影和毛刺。

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

+0

我不想将位图转换为矢量,我试图将包含矢量的精灵保存为矢量。位图用于显示,因为它在我的大部分用途中速度更快。 – 2012-03-17 03:39:55

2

如果您正在使用图形API(和/或使用premade sprites w。vector art)进行生成艺术,那么最简单的方法是将其打印为PDF。这将保留矢量,您可以稍后导入到像Illustrator这样的东西来做最后的修改。我用这种方式完成了我的游戏截图,效果非常好。裁剪可能存在一些问题,但如果您调整事物的缩放比例,则应该避免这些问题。

+0

这很有帮助,虽然我会非常喜欢用编程的方式来做到这一点。如果没有人有图书馆这样做,也许我应该做一个。 – 2012-03-17 03:33:33

1

为grapefrukt建议,PDF是我第一次,虽然过。

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

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

相关问题