【问题标题】:Multiple converts from one source using imagemagick使用 imagemagick 从一个来源进行多次转换
【发布时间】:2016-12-28 22:55:06
【问题描述】:

是否可以有一个来源并从中获得两种具有不同配置的已处理图像? (而不是两次读取源图像)?

有点像

convert input.jpg -resize 300 output1.jpg -resize 600 output2.jpg

【问题讨论】:

    标签: imagemagick imagemagick-convert graphicsmagick


    【解决方案1】:

    当然,像这样使用中间的-write,然后先做大的:

    convert input.jpg -resize 600 -write im600.jpg -resize 300 im300.jpg
    

    或者,如果您想从每个操作重新开始:

    convert input.png \
      \( +clone -resize 300 -write result300.jpg \) \
      \( +clone -resize 600 -write result600.jpg \) null:
    

    如果使用 GraphicsMagick,我不确定是否有比以下更好的方法:

    #!/bin/bash
    { echo convert input.png mpr:orig; 
      echo convert mpr:orig -resize 300 result300.jpg;
      echo convert mpr:orig -resize 600 result600.jpg; } | gm batch -prompt off
    

    这是一个稍微不同的版本,它只调用了两次convert

    #!/bin/bash
    cat - <<EOF | gm batch -prompt off
    convert input.png -write mpr:orig -resize 300 result300.jpg
    convert mpr:orig -resize 600 result600.jpg
    EOF
    

    【讨论】:

    • 这不会是 source -&gt; 600 -&gt; 300 而不是 source -&gt; 300source -&gt; 600
    • 是的,它会的。我添加了一个版本,它重新开始每个操作,而不是从以前的位置继续。
    • 谢谢!为什么需要 null?
    • null 在那里,因为原始图像和克隆仍然在要处理的图像堆栈中,所以我只是将所有内容都丢弃为 null,因为我已经生成了我想要使用的所有输出文件-write.
    • 你可以做一些非常相似的事情,但是 GraphicsMagick 不提供+clone 或括号,所以我能做的最好的事情是通过MPR 这是一个基于RAM的副本.
    猜你喜欢
    • 2016-11-14
    • 2012-09-18
    • 2014-02-20
    • 1970-01-01
    • 2015-08-08
    • 2017-12-18
    • 1970-01-01
    • 2013-11-04
    • 2019-08-08
    相关资源
    最近更新 更多