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
我想使用 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