2011-03-08 45 views
4

在我的項目中,我需要Windows可執行文件的圖標文件(.ICO)。我想從SVG生成該文件,因此它包含多個不同大小的圖像。有沒有一個Maven插件可以爲我做到這一點?如何使用maven從SVG生成ICO文件?

我知道我只需要將一個圖標文件放入我的存儲庫,但源文件是SVG圖像,所以我想避免這種情況。

回答

3

我不認爲有一些Maven插件。而且問題也超出了maven本身。

你可以做的是:

  1. 使用Apache Batik Rasterizer
  2. 變換SVG至PNG使用ImageMagickJMagick包裝
  3. 創建Apache Ant腳本,將調用1和2轉換PNG至ICO,並將其添加到使用AntRun插件的Maven生命週期階段之一。
+0

在ImageMagick文檔中,我無法找到創建.ico文件的選項。我想在一個.ico文件中有多個圖像。你能指出我的文件嗎? – 2011-03-08 15:21:06

+1

嘗試使用連接選項:http://www.imagemagick.org/script/command-line-options.php#adjoin – 2011-03-08 15:38:55

+0

感謝您的鏈接。我很抱歉地說JMagick文檔太稀少了。 Javadoc根本沒有幫助,而且這些例子並不完整。這同樣適用於維基。 – 2011-03-08 15:56:55

1

您可以通過使用Google's canvg把它推到一個畫布,然後在畫布上用toDataURL()得到base64編碼的PNG數據光柵的SVG到網頁上的PNG。然後你需要解碼。

或者,您可以使用任意數量的服務器端SVG-to-PNG converters

不是比@安德烈的更好的答案,但顯示更多的選擇第一步。

1

batik-maven-plugin至少可以讓你從SVG生成一個PNG。不知道如何生成ICO。

+0

不可能在'batik-maven-plugin'內 - 但是,建議功能在https://github.com/trajano/batik-maven-plugin/issues/2 – 2016-12-23 21:54:38

2

我遇到了您的問題尋找一個解決方案,一個非常類似的問題。我沒有給出真正適合我的答案,因爲我不希望被束縛到運行的可執行文件中,所以我寫了一個純Java Ant任務(使用Batik和image4j下的內容)

我已經開源了它在http://svg2ico.sourceforge.net/ - 也許你可以從Maven調用它?