如果调整大小操作应该针对较大的图像进行,我假设您希望保留纵横比。
convert \
input-image \
-resize 1000x1000\> \
-quality 90% \
output.jpg
请不要将\> 后缀添加到1000x1000 几何设置!这很关键。如果您因为忽略它而在命令中跳过它,那么该命令将无法按预期工作。
这个命令应该满足你的前两点。 resize 参数中的关键是\> 除了通常的{width}x{height} 部分。它告诉 ImageMagick 仅在宽度或高度超过 1000 像素时才调整输入文件的大小。 (\ 只是作为一种转义,以防止您的 shell 将 > 解释为重定向命令。)
为了包括第三点,我可以想象有 很多 不同种类的“水印”。我这里只展示一个非常简单的:
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