ImageMagick使用stdin从GRAY转换为TIFF

时间:2013-07-24 00:25:11

标签: image-processing imagemagick imagemagick-convert

我有一个文件,我以原始GRAY格式保存,然后转换为tiff。按如下方式运行命令:

convert -size 1024X1024 -depth 16 -endian MSB imgTemp.gray /tmp/bla.tiff

但更改为使用stdin作为输入不会:

cat imgTemp.gray | convert -size 1024x1024 -depth 16 -endian MSB -:gray /tmp/bla.tiff

我收到以下错误:

convert:此图像格式没有解码委托gray' @ error/constitute.c/ReadImage/532. convert: missing an image filename / tmp / bla.tiff'@ error / convert.c / ConvertImageCommand / 3011。

问题是为什么?

1 个答案:

答案 0 :(得分:2)

您只需翻转STDIN和格式。 “-:gray”应为“gray:-

cat imageTemp.gray | 
  convert -size 1024x1024 \
    -depth 14 \
    -endian MSB gray:- /tmp/bla.tiff

回答为什么这种情况正在发生。我们可以使用-verbose开关运行您之前的命令。

cat imgTemp.gray | \
    convert -verbose \
    -size 1024x1024 \
    -depth 16 \
    -endian MSB -:gray /tmp/bla.tiff

这将使用另外一行信息来解释ImageMagick正在尝试做什么

convert: unable to open image `gray':
  No such file or directory @ error/blob.c/OpenBlob/2638.
convert: no decode delegate for this image format 
 `gray' @ error/constitute.c/ReadImage/550.
convert: no images defined `bla.tiff' @ error/convert.c/ConvertImageCommand/3078.

转换命令与-:gray混淆并尝试打开名为“灰色”的blob文件,并最终尝试打开“bla.tiff”作为源图像。它们都不存在于文件系统中。