【问题标题】:ImageMagick creating multiple filesImageMagick 创建多个文件
【发布时间】:2013-01-11 11:50:26
【问题描述】:

我正在运行以下命令:

convert '/var/www/Standard Features.tif' '/var/www/Standard Features.jpg'

由于某种原因,我创建了 2 个文件:

-rw-r--r--  1 root   root    31809 Jan 27 23:53 Standard Features-0.jpg
-rw-r--r--  1 root   root    20899 Jan 27 23:53 Standard Features-1.jpg

为什么会发生这种情况,我怎样才能让它停止?我似乎无法弄清楚为什么会这样。我已尝试更改选项和所有内容,但似乎没有任何效果。

【问题讨论】:

    标签: php command-line imagemagick imagemagick-convert


    【解决方案1】:
    convert in.tif -delete 0 out.jpg
    

    convert in.tif -delete 1 out.jpg
    

    您将尝试转换多目录 TIFF,该 TIFF 被转换为 convert 的图像堆栈。 -delete 参数指定要删除的堆栈索引(当堆栈中只剩下一张图像时,将只输出一张图像)。

    多目录 TIFF 确实有多个图像,因此您需要注意实际丢弃的内容。

    【讨论】:

    • 在我运行转换之前,是否会有 tiff 文件被合并/压缩或不分层或其他东西,以便多图像 tiff 变为 1 个图像? (问题是我有 400 个文件,还有更多来自客户的随机文件,所以我没有明确的方法知道要丢弃哪个文件)
    • 如果您愿意假设它们是可以展平的对齐层,您可以使用-flatten。找出为什么它们甚至是多目录 TIFF 可能会很有用(这可能通过查看原始命令生成的图像来揭示)。
    【解决方案2】:

    我发现这对处理输出更有帮助,因为它不需要知道 ImageMagick 会生成多少文件。这仅在您只需要第一张图片时才有用:

    convert in.tif -delete 1--1 out.jpg
    

    1 是创建的第二个图像(索引为 0)

    -1 是最后创建的图像

    所以 1--1 是从第二个到最后一个创建的图像的范围。您的输出将是 out.jpg 而不是 out-0.jpg。

    【讨论】:

      【解决方案3】:

      TIFF 文件可以有多个页面。 GIF 文件可以有多个帧,PDF 文件可以有多个图层。转换此类将产生多个输出,每个页面/帧/层一个。

      如果您只想要 ImageMagick 中图像的一页/层/帧,那么只需将 [x] 添加到您的输入文件名。例如,如果您只想要 TIFF 的第一页,那么

      convert image.tiff[0] out.jpg
      


      Selecting Frames

      如果您想要一系列页面,例如使用 [3-27]。

      如果使用 ImageMagick 7,请将 convert 替换为 magick。

      【讨论】:

        猜你喜欢
        • 2013-04-17
        • 2017-03-29
        • 1970-01-01
        • 1970-01-01
        • 2011-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多