0

你好,如果有人想帮助解决这个问题,那就太好了。下面的命令正在工作

mogrify -verbose -path /cygdrive/L/temp/og-rotate-logo -format jpg -draw '图像超过 0,0 0,0 "/cygdrive/L/temp/logo.png"' -gravity Southeast *.jpg -path /cygdrive/L/temp/1200px -adaptive-resize 1200x1200 *.jpg

但是它看起来有点难看,因为它首先制作所有徽标图像,然后对这些图像进行所有调整大小。

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

任何帮助深表感谢

也仅供参考,我正在使用 cygwin 和 imagemagick 运行 Windows 7

4

1 回答 1

0

嗯......一些想法:

  • -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- 它可能会造成非常大的混乱,非常快,并行。

于 2017-07-30T14:49:36.900 回答