【发布时间】:2019-04-21 03:12:35
【问题描述】:
我想使用 Node.js 自动化从 PNG 图像中修剪透明边缘的过程,但我希望使用 CLI 工具(由 child_process 调用)或具有本机绑定的 Node 模块,而不是纯 JavaScript 实现以提高性能原因。
这听起来像是一项相当简单的任务,但我搜索了数周,但没有任何符合我需要的结果。
- 无论输入图像是什么样子,修剪例程都应搜索透明像素。大多数实现都会检查左上角像素的颜色。
- 修剪例程应该可以使用容差值进行配置,因此不透明度为 20% 或更低的任何内容都会被移除,而不是严格检查不透明度为 0%。
我目前使用Sharp 和GraphicsMagick 进行复杂的图像处理链,但是因为我没有找到用于透明度修剪的工具,所以我编写了一个自定义的Jimp 插件来处理修剪工作。效率低下,但它仍然有效。
这是一个示例输入图像:
以及预期的输出图像:
不过我想摆脱 Jimp。
【问题讨论】:
-
您可以用 C++ 编写一个简单的算法并将其用作节点插件吗?
-
@MateuszSowiński 是的,如果我真的找不到合适的东西,这就是我要做的。不过,我宁愿不构建自己的实现,因为我必须学习 C++ 和 node-gyp。
标签: node.js imagemagick image-manipulation graphicsmagick imagefilter