使用 Imagemagick 将大图像裁剪成特定的宽高比,然后调整它们的大小
Use Imagemagick to crop large images to a specific aspect ratio and then resize them
我有一堆来自 Unsplash 的高分辨率图片,
- 首先需要裁剪成 16:9 宽高比(从中心开始),然后,
- 将它们调整为 2560x1440 像素。
如何在 Mac 上使用 Imagemagick
执行此操作?
我认为这将满足您对单个图像的需求:
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 {}
我有一堆来自 Unsplash 的高分辨率图片,
- 首先需要裁剪成 16:9 宽高比(从中心开始),然后,
- 将它们调整为 2560x1440 像素。
如何在 Mac 上使用 Imagemagick
执行此操作?
我认为这将满足您对单个图像的需求:
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 {}