ImageMagick:使用一个命令在图像上实现多个(部分*条件*)操作

时间:2014-11-15 22:13:22

标签: imagemagick

很抱歉,如果我的问题不是一个复杂的难题,但我尝试了很多,并没有达到我的预期:(

如何使用ImageMagic同时实现所有这些目标(win32):

  1. 仅在(宽度/高度)大于1000px时调整图像大小(缩放),以使得到的图像的最大宽度/高度为1000px或更小

  2. 将任何类型转换为质量为90%的JPG

  3. 在图片的右下角放置一个商标(不是必需的,但最好还是这样)

  4. 感谢您分享您的知识和经验

1 个答案:

答案 0 :(得分:0)

如果对较大的图像进行调整大小操作,我假设您希望保留纵横比。

convert              \
  input-image        \
 -resize 1000x1000\> \
 -quality 90%        \
  output.jpg

请不要\>几何设置的1000x1000后缀!这是至关重要的。如果你在命令中跳过它,因为你忽略了它,那么命令将无法按预期工作。

此命令应该满足您的前两点。调整大小参数的关键是\>添加到通常的{width}x{height}部分。它告诉ImageMagick仅在宽度或高度超过1000像素时调整输入文件的大小。 (\仅作为转义,以防止shell将>解释为重定向命令。)

要包含第3点,我可以想象出不同类型的“水印”的 很多 。我在这里只展示一个非常简单的一个:

convert              \
  input-image        \
 -resize 1000x1000\> \
 -quality 90%        \
  \
       -fill white             \
       -undercolor '#00000080' \
       -gravity southeast      \
       -annotate +5+5          \
        ' My Trademark '       \
  \
  output.jpg

我希望这个例子给你足够的想法,以便继续你自己的实验。


更新

正如Jimmy B.认为我的命令不起作用,让我用一个例子证明我的案例......

创建三个示例图像

for i in 2000x2000 2000x500 500x2000; do
   convert -size $i  xc:red  red-${i}.jpg
done

检查示例图像的大小

identify red-*x*.jpg
  red-2000x2000.jpg JPEG 2000x2000 2000x2000+0+0 8-bit sRGB 23.7KB 0.000u 0:00.000
  red-2000x500.jpg[1] JPEG 2000x500 2000x500+0+0 8-bit sRGB 6.29KB 0.000u 0:00.000
  red-500x2000.jpg[2] JPEG 500x2000 500x2000+0+0 8-bit sRGB 6.29KB 0.000u 0:00.000

使用我的命令

调整三个示例图像的大小
for img in red-*x*.jpg; do
   convert              \
     ${img}             \
    -resize 1000x1000\> \
    -quality 90%        \
     \
          -fill white             \
          -undercolor '#00000080' \
          -gravity southeast      \
          -annotate +5+5          \
           ' My Trademark '       \
     \
    resized-${img}
done

检查已调整大小的图像的大小

identify resized-red-*x*.jpg
  resized-red-2000x2000.jpg JPEG 1000x1000 1000x1000+0+0 8-bit sRGB 7.43KB 0.000u 0:00.000
  resized-red-2000x500.jpg[1] JPEG 1000x250 1000x250+0+0 8-bit sRGB 3.31KB 0.000u 0:00.000
  resized-red-500x2000.jpg[2] JPEG 250x1000 250x1000+0+0 8-bit sRGB 2.99KB 0.000u 0:00.000