程序化图形工具链

发布于 2024-07-10 09:00:33 字数 312 浏览 9 评论 0原文

我在 Inkscape 中绘制了一个图标,但现在想以编程方式更改它(稍微更改不同图标状态的颜色)并将其转换为包含多个不同颜色图标的平铺 PNG 格式文件。 我了解 Inkscape 的 --export-png 选项,但找不到一种方法可以使其更改图像和/或多次导出到组合图像的不同部分。

是否有任何好的面向用户的工具来以编程方式摆弄图像,或者我是否必须深入研究GD,甚至手动修改SVG XML?

I have drawn an icon in Inkscape, but would now like to programmatically alter it (change the colours slightly for different icon states) and convert it to a tiled PNG format file containing multiple icons with different colours. I know about Inkscape's --export-png options, but can't see a way to make it change the image and/or export multiple times to different parts of the combined image.

Are there any good user-oriented tools for programmatically fiddling with images, or do I have to delve into GD or even manually modifying the SVG XML?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女中豪杰 2024-07-17 09:00:33

尽管我不能 100% 确定它是否满足您面向用户的要求,但我建议您查看 www.imagemagick.org。 我已成功使用其“转换”实用程序来编写从 svg 到 png 的转换脚本,并添加自定义背景颜色。

Even though I'm not 100% sure if it fulfills your request for user-orientation, I recommend you to have a look at www.imagemagick.org. I have successfully used its "convert" utility for scripting conversion from svg to png and also for adding custom background colors.

寄意 2024-07-17 09:00:33

我使用两套简单的工具来为网络漫画执行此操作:

  • 用于修改 SVG XML 的基本 Perl/PHP/Ruby 脚本(还有一个很棒的 Perl 库,但我发现它不需要我需要的基本更改)
  • 从命令行运行 Inkscape 本身,将 SVG 渲染为 PNG。 Inkscape 的 SVG 渲染是迄今为止我发现的最好的。

注意:Inkscape 可以通过一些工作安装在网络服务器上,并且可以从 CGI(perl、php 等)调用,尽管它很慢(因此您应该缓存结果)。

从 SVG 文件目录上的命令行调用它:

find -name "*svg" -exec inkscape -z --file={} \ 
    --export-png=$OUTPUT{}.png --export-width=640 --vacuum-defs \;
  • 查找所有 SVG 文件
  • 运行 Inkscape 渲染每个文件
  • 宽度限制为 640px
  • SVG 文件被清理(在签入 svn/git 之前最好这样做)

您可能也感兴趣Batik 中,一个用 Java 编写的 SVG 渲染引擎。 它在服务器端运行良好,并且相当独立。

I use two simple sets of tools to do this for a webcomic:

  • Basic Perl/PHP/Ruby scripts to modify the SVG XML (there is also a great Perl library, but I find it isn't needed for the basic changes I need)
  • Run Inkscape itself from the command line to render the SVG to PNG. Inkscape's SVG rendering is by far the best I have found.

Note: Inkscape can be installed on a webserver with a bit of work and can be called from a CGI (perl, php, etc.), though it's slow (so you should cache the results).

Calling it from the command line on a directory of SVG files:

find -name "*svg" -exec inkscape -z --file={} \ 
    --export-png=$OUTPUT{}.png --export-width=640 --vacuum-defs \;
  • Finds all SVG files
  • Runs Inkscape to render each file
  • Width is limited to 640px
  • The SVG files are cleaned up (nice to do before checking into svn/git)

You may also be interested in Batik, an SVG render engine written in Java. It runs nicely on the server side, and is fairly self-contained.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文