1

我需要从渲染管道不生成(可靠)边界框的图表中​​裁剪空白(边距等)。边缘是可靠的白色,因此自动检测原则上是微不足道的,但是我设法找到的唯一现有工具是1990 年代初期的古老 pnmcrop ( http://netpbm.sourceforge.net/doc/pnmcrop.html ),它使用晦涩难懂的 netpbm 图像格式(https://en.wikipedia.org/wiki/Netpbm_format)。

netpbm 工具确实包含 PNG 格式转换器,所以这个三元组可以工作:

pngtopnm original.png >original.ppm
pnmcrop original.ppm >cropped.ppm
pnmtopng cropped.ppm >cropped.png

但它有点笨拙(并且使用图表,中间 PPM 文件可以膨胀超过 100 倍:original.png 是 165kB,original.ppm 是 224MB)。

肯定有一种方法可以哄骗像 imagemagick 这样的现代工具来查找和裁剪边框?

编辑:netpbm 工具支持标准输入。因此,作为没有临时文件的更好的单线:

pngtopnm <original.png | pnmcrop | pnmtopng >cropped.png

使用适当的工具替换(jpgtopnm、giftopnm 等 - 从所有 71 种可能性中选择!)它仍然有点笨拙。

4

1 回答 1

1

感谢上面的@emcconville,imagemagick 的使用更加整洁和快速:

convert original.png -trim cropped.png
于 2014-04-17T07:18:08.897 回答