Copyright/Watermark 许多不同分辨率的图像(使用 ImageMagick)

Copyright/Watermark many images with different resolutions (with ImageMagick)

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

我有一张 logo.png 的图片,分辨率为 1260x1580。我想用它来保护不同的 JPG 图像,例如image1.jpg 分辨率为 1280x853。我想要徽标,例如在右下角并且 始终具有例如高度JPG 图像高度的 1/8.

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

我在命令行(在 Windows 10)上使用 ImageMagick,目前是这样的:

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

不幸的是,带有 x%[fx:u.h/8] 的调整大小选项无法按预期工作,它还会调整 JPG 图像的大小 image1.jpg。我不知道,我如何管理它以仅调整 logo.png 的大小并让 image1.jpg 的大小原封不动。当我把 ( logo.png -resize x%[fx:u.h/4] ) 放在括号中当然 u.h 然后指的是 logo.png,这也是错误的:-/

如果您能稍微帮助我找到适合我的目的的正确命令,那就太好了...感谢您的回复和帮助!

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

你有两张图片,主要输入和徽标。通过向 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",这已经是第一张图片的高度,所以它不会改变那个。

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

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