imagemagick convert -crop 之前有管道

imagemagick convert -crop with pipe before it

我想使用 imagemagick 裁剪图像。 但是,imagemagick 将接收图像数据以通过它之前的管道进行裁剪:

exiftool -b -RawThermalImage image1.jpg | convert .....-crop.....

我不确定在“.....-crop.....”中放入什么,以将接收到的图像数据裁剪到特定区域。请指导。

通常,转换后,指定要裁剪的图像如下:

convert rose: -crop 1x1+3+3 cropped.gif

但是,在这种情况下,鉴于图像是从管道传入的,我对如何完成此命令感到困惑。

图片链接: https://drive.google.com/file/d/14h3z0yFK_9_f2puzbhLUm3D50MDMMnu2/view?usp=sharing

更新答案

发现问题是由于无意中使用了 GraphicsMagick 而不是 ImageMagick

原答案

如果该流的开头有一个 well-known 幻数(签名),您应该可以使用破折号 - 来指代 stdin

exiftool -b -RawThermalImage image1.jpg | convert - -crop ... result.jpg

如果流是原始的,或者没有已知的魔法 number/signature,您将需要给 ImageMagick 一个提示,所以如果它是原始灰度形状为 640x480 的 8 位数据,使用:

exiftool -b -RawThermalImage image1.jpg | convert -size 640x480 -depth 8 GRAY:- -crop ... result.jpg

如果是大小为 80x80 的 RGB888 数据,使用:

exiftool -b -RawThermalImage image1.jpg | convert -depth 8 -size 80x80 RGB:- -crop ... result.jpg