使用 Imagemagick 将大图像裁剪为特定的纵横比,然后调整它们的大小

Posted

技术标签:

【中文标题】使用 Imagemagick 将大图像裁剪为特定的纵横比,然后调整它们的大小【英文标题】:Use Imagemagick to crop large images to a specific aspect ratio and then resize them 【发布时间】:2021-04-18 09:38:14 【问题描述】:

我有一堆来自 Unsplash 的高分辨率图片,

    首先需要裁剪为 16:9 的纵横比(从中心开始),然后, 将它们调整为 2560x1440 像素。

如何在 Mac 上使用 Imagemagick 执行此操作?

【问题讨论】:

【参考方案1】:

我认为这将满足您对单个图像的需求:

magick INPUT.JPG -gravity center -extent 16:9 -resize 2560x1440 RESULT.JPG 

如果你想做很多事情,你可以使用 bash 循环:

for f in *.jpg *.png ; do
   magick "$f" -gravity center -extent 16:9 -resize 2560x1440 "$f"
done

如果您有数千个,您可以使用 homebrew 来安装 GNU Parallel

brew install parallel

然后使用您的所有 CPU 内核并行完成它们:

parallel --bar magick  -gravity center -extent 16:9 -resize 2560x1440  ::: *.jpg *.png

如果您有数十万或数百万,则会溢出 ARG_MAX,因此您需要像这样在 stdin 上提供文件名:

find . -iname \*.png -print0 | parallel -0 magick  -gravity center -extent 16:9 -resize 2560x1440 

【讨论】:

工作就像一个魅力!谢谢。

以上是关于使用 Imagemagick 将大图像裁剪为特定的纵横比,然后调整它们的大小的主要内容,如果未能解决你的问题,请参考以下文章

使用imagick裁剪大图像不起作用

PHP ImageMagick 将大图像拆分为图块

ImageMagick:如何将图像最小化为特定宽高比?

将相机拍摄的大图像裁剪为 640x640 像素

ImageMagick之图片裁剪详解

C# 裁剪和调整大图像大小