我正在研究AS3中的一些生成藝術項目,並且我一直遇到位圖質量限制的問題。它們不是可擴展或可編輯的矢量方式。是否有一個類或庫可用於獲取Sprite對象的圖形並將它們導出爲SVG格式?其他常見的矢量格式也可以接受。AS3 - 將SVG導出或保存爲SVG或其他矢量格式
使用樣本也將不勝感激。
編輯:請注意,我使用FlashDevelop而不是Adobe Flash CS。我正在尋找一個程序化解決方案。
我正在研究AS3中的一些生成藝術項目,並且我一直遇到位圖質量限制的問題。它們不是可擴展或可編輯的矢量方式。是否有一個類或庫可用於獲取Sprite對象的圖形並將它們導出爲SVG格式?其他常見的矢量格式也可以接受。AS3 - 將SVG導出或保存爲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);
}
這讓我通過傳遞點
看看AS3 SWF Shape Export - SVGhapeExporter
應該做得很好(example code here)。
不幸的是,一旦位圖格式化,你不能完美和容易地將光柵圖形逆向工程化爲矢量。有一些工具試圖完成這項任務,但他們取得了不同的結果。 Flash包含一個內置的「跟蹤位圖」功能,該功能將執行此任務,並選擇圖像,然後轉到「修改>位圖>跟蹤位圖」。您需要使用不同的選項來嘗試獲得最佳結果,但即使這樣,也可能需要手動調整才能整理僞影和毛刺。
This tutorial對每個選項的作用都有相當好的概述。
我不想將位圖轉換爲矢量,我試圖將包含矢量的精靈保存爲矢量。位圖用於顯示,因爲它在我的大部分用途中速度更快。 – 2012-03-17 03:39:55
如果您正在使用圖形API(和/或使用premade sprites w。vector art)進行生成藝術,那麼最簡單的方法是將其打印爲PDF。這將保留矢量,您可以稍後導入到像Illustrator這樣的東西來做最後的修改。我用這種方式完成了我的遊戲截圖,效果非常好。裁剪可能存在一些問題,但如果您調整事物的縮放比例,則應該避免這些問題。
這很有幫助,雖然我會非常喜歡用編程的方式來做到這一點。如果沒有人有圖書館這樣做,也許我應該做一個。 – 2012-03-17 03:33:33
看看Saving Flash graphics as image files at runtime這篇文章。它也有一個live demo.
此外,試試這個FLASH save frame, to image (tiff, bmp, jpg, gif, png)
我已經知道如何在AS3中保存基於像素的圖像。我需要一種方法來保存精靈的矢量,最好以.svg格式保存。 – 2012-03-21 15:07:41
我answered this differently myself earlier,但陣列,使三角形等形狀嘗試過該工具自己,沒多少希望我四處尋找不同的東西,發現這個項目名爲SWF2SVG on wonderfl。它使用上傳的SWF並使用as3swf library將其轉換爲SVG路徑。
鏈接到SWF2SVG工具:http://wonderfl.net/c/sPjI
這將只因爲它們包含在SWF出口的符號,在運行時生成的不是圖形。雖然它仍然非常甜蜜! – grapefrukt 2012-03-17 00:40:44