2011-03-08 32 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调用它?

相关问题