版权/水印许多不同分辨率的图像(使用ImageMagick)

时间:2017-09-22 07:54:59

标签: image resize imagemagick

我正在尝试解决以下问题:

我有一张图片 logo.png ,分辨率为1260x1580。我想用它来版权不同的JPG图像,例如 image1.jpg ,分辨率为1280x853。我希望有徽标,例如在右下角,总是高度为例如JPG-Image高度的1/8

简短:我有许多不同分辨率的图像,版权在该图像中的比例应始终相同(例如总高度的1/8)。

我在命令行上使用ImageMagick(在Windows 10上),就像这样:

magick image1.jpg logo.png -resize x%[fx:u.h/8] -gravity SouthEast -geometry +15+15 -composite outfile.jpg

不幸的是,使用x%[fx:u.h/8]的resize-Option无法正常工作,它还会调整JPG-Image image1.jpg 的大小。我不知道,我如何管理它只调整 logo.png 的大小,并让 image1.jpg 的大小不变。当我将( logo.png -resize x%[fx:u.h/4] )放在当前括号中u.h然后引用 logo.png 时,这也是错误的: - /

如果你能帮助我一点点找到合适的命令,那就太棒了...感谢您的回复和帮助!

PS:我希望我没有忽略一些重要的来源或帮助,但我自己找不到解决方案 - 抱歉。

2 个答案:

答案 0 :(得分:3)

您有两个图像堆栈,主要输入和徽标。您可以通过在FX表达式中添加条件,使“-resize”操作仅对徽标起作用。用这样的东西开始你的命令......

 magick image1.jpg logo.png -resize x%[fx:t==1?u[0].h/8:u[0].h] ...

表达式对堆栈中的每个图像运行一次。 “t”代替堆栈中图像的位置,第一个图像为0,第二个图像为1.因此,如果“t”等于1,则为徽标。将其大小调整为“u [0] .h / 8”表示的第一个图像的高度的1/8。否则将其大小调整为“u [0] .h”,这已经是第一个图像的高度,因此不会改变那个。

答案 1 :(得分:1)

在Imagemagick中,尝试使用括号来限制操作

magick image1.jpg ( logo.png -resize x%[fx:u.h/8] ) -gravity SouthEast -geometry +15+15 -composite outfile.jpg