imagemagick mogrify 命令添加徽标保存在 folder1 中并调整大小并保存在 folder2 中

imagemagick mogrify command adding a logo saving in folder1 and resizing and saving in folder2

您好,如果有人愿意提供帮助,那就太好了。 以下命令正在运行

mogrify -verbose -path /cygdrive/L/temp/og-rotate-logo -format jpg -draw 'image over 0,0 0,0 "/cygdrive/L/temp/logo.png"' -gravity southeast *.jpg -path /cygdrive/L/temp/1200px -adaptive-resize 1200x1200 *.jpg

然而它看起来有点难看,因为它首先制作所有徽标图像,然后处理这些图像的所有调整大小。

我的问题是有更好或更快的方法吗? 我一次处理数千张照片。

非常感谢任何帮助

另外,我 运行 windows 7 使用 cygwin 和 imagemagick

嗯……一些想法:

  • 您的 -format jpg 是多余的,因为您的输入文件已经是 JPEG

  • 您在命令中重复了 *.jpg,这是不正确的 - 您只需要一次

所以,试试这样的东西:

mogrify -gravity southeast -path /cygdrive/L/temp/og-rotate-logo ^
   -draw 'image over 0,0 0,0 "/cygdrive/L/temp/logo.png"'        ^
   -adaptive-resize 1200x1200 *.jpg

我不使用 Windows,但我相信 ^ 是上面的行继续符。

为了回答您的实际问题,如果您有数千张图像需要处理,我建议安装 GNU Parallel,尽管我从未在 Windows 上使用过它。

dir /b *.jpg | parallel -X mogrify -gravity southeast -path /cygdrive/L/temp/og-rotate-logo -draw 'image over 0,0 0,0 "/cygdrive/L/temp/logo.png"' -adaptive-resize 1200x1200 

您还可以通过将 logo.png(仅一次)重新保存为 MPC 文件然后在 mogrify:

中使用它来获得一些性能
convert /cygdrive/L/temp/logo.png /cygdrive/L/temp/logo.mpc

然后使用:

mogrify -gravity southeast -path /cygdrive/L/temp/og-rotate-logo ^
  -draw 'image over 0,0 0,0 "/cygdrive/L/temp/logo.mpc"'        ^
  -adaptive-resize 1200x1200 *.jpg

请在单独的测试目录中复制一些文件,然后继续处理它们,直到您对 GNU Parallel 和 mogrify 有了更多的经验 - 它会造成很大的混乱, 非常快, 并行.