0

我有一个以原始灰色格式保存的文件,然后将其转换为 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

我收到以下错误:

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

问题是为什么?

4

1 回答 1

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并尝试打开名为“gray”的 blob 文件,并最终尝试将“bla.tiff”作为源图像打开。它们都在文件系统上不存在。

于 2013-07-24T13:15:20.337 回答