使用节点的 graphicsmagic 将 EPS 转换为 PNG 不保持透明度

Converting EPS to PNG using graphicsmagic for node does not keep transparency

我一直在尝试使用 graphicsmagic for node (http://aheckmann.github.io/gm/) 将透明的 EPS 文件转换为透明的 PNG 文件。

它的行为方式需要与以下命令相同(保持 EPS 的透明度)

convert -colorspace srgb in.eps out.png

上面的命令按预期工作但是当我在节点中使用以下代码尝试它时它不保持透明度。

var gm = require('gm').subClass({ imageMagick: true });

gm("in.eps").colorspace("srgb").write("out.png", function (err) {
  if (!err) {
    console.log('done');
  }
});

我也尝试过强制类型 TrueColorAlpha 并设置位深度但无济于事。

希望有人能就我做错了什么或我遗漏了哪些信息提出建议。

对于同样遇到这个问题的任何人,这为我解决了。

var gm = require('gm').subClass({ imageMagick: true });

gm("in.eps").in("-colorspace").in("srgb").write("out.png", function (err) {
  if (!err) {
    console.log('done');
  }
});

您需要添加两个自定义 in 参数以将色彩空间应用于输入 EPS 图像。