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

使用Imagemagick将大图像裁剪为特定纵横比,然后调整其大小,imagemagick,crop,image-resizing,Imagemagick,Crop,Image Resizing,我有一堆来自Unsplash的高分辨率图像 首先需要裁剪到16:9的纵横比(从中心开始),然后 将其调整为2560x1440px 如何在Mac上使用Imagemagick实现这一点?我认为这将满足您对单个图像的需求: magick INPUT.JPG -gravity center -extent 16:9 -resize 2560x1440 RESULT.JPG 如果您想做很多事情,可以使用bash循环: for f in *.jpg *.png ; do magick "

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

  • 首先需要裁剪到16:9的纵横比(从中心开始),然后
  • 将其调整为2560x1440px

  • 如何在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
    

    如果您有数千台,您可以使用自制安装GNU并行

    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 {}
    

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

    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
    

    如果您有数千台,您可以使用自制安装GNU并行

    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 {}
    

    工作得很有魅力!谢谢你,工作很有魅力!非常感谢。