Batch resize images and output images to new folder with ImageMagick

87,622

Solution 1

"Mogrify" should be called from the directory with the original thumbnails, while the -path parameter is for pointing target directory.

mkdir public_html/images/new-thumbs
cd public_html/images/thumbs
magick mogrify -resize 16x12 -quality 100 -path ../new-thumbs *.jpg

http://www.imagemagick.org/Usage/basics/#mogrify

The last arguments are the list of files, so you can filter by name 1-*.jpg for example.

Solution 2

Suggested solutions do not work properly on the latest ImageMagick (at least, on macOS). Command, that works overwriting source images is as follows:

magick mogrify -path ./ -resize 50% -quality 80 *.jpg

To avoid overwriting the original images, write to a new folder:

magick mogrify -path path/to/destination/folder/ -resize 50% -quality 80 *.jpg

Solution 3

In ImageMagick 7 versions its built into the magick ...so..

magick mogrify -resize 16x12 -quality 100 -path ../new-thumbs *.jpg

Make sure that the folder you specify in path exists. It will not be created by ImageMagick.

Find more information here https://www.imagemagick.org/script/mogrify.php

Solution 4

For those having Shotwell installed on Ubuntu/Debian, following may be more easy to export selected images in a folder to another folder through processing the images as needed.

  • Open Shotwell
  • Select the images you want to export
  • File > Export
  • Adjust the values to your needs
  • Select the folder to export
Share:
87,622
richard
Author by

richard

Updated on July 08, 2022

Comments

  • richard
    richard almost 2 years

    Current image folder path:

    public_html/images/thumbs
    

    Output image folder path:

    public_html/images/new-thumbs
    

    I have 10 video thumbs per video in current folder, named of image thumbs:

    1-1.jpg
    1-2.jpg
    1-3.jpg
    1-4.jpg
    1-5.jpg (Resize)
    1-6.jpg
    1-7.jpg
    1-8.jpg
    1-9.jpg
    1-10.jpg
    
    2-1.jpg
    2-2.jpg
    2-3.jpg
    2-4.jpg
    2-5.jpg (Resize)
    2-6.jpg
    2-7.jpg
    2-8.jpg
    2-9.jpg
    2-10.jpg
    

    I want to resize all 5th images(*-5.jpg) to the new folder. I've tried below command but no luck:

    mogrify 
    -path 
      public_html/images/thumbs/*-5.jpg 
    -resize 16×12 
    -quality 100 
      public_html/images/new-thumbs/*-5.jpg
    
  • Tenaciousd93
    Tenaciousd93 over 9 years
    You are right, but you can also call mogrify from any directory, for example I convert originary jpeg into png with mogrify -path /destination/path/ -adaptive-resize 5000 -unsharp 0x1 -format png /originary/path/*.jpeg
  • Matthew Morek
    Matthew Morek over 8 years
    Note that output directories you're pointing to must exist, as ImageMagick will no create them, causing a mogrify: unable to open image error.
  • inukaze
    inukaze over 6 years
    This don't work with i try with png and put 1024x600 , all images are resized to 800x600 instead 1024x600
  • ashleedawg
    ashleedawg over 5 years
    This is exactly the same as the accepted answer, only 4 years later. Why? (I guess you added the word "magick" to the front of it, but it runs fine without that (no added value)
  • Саша Черных
    Саша Черных over 5 years
    @ashleedawg, without magick I get Cannot find file at '..\\lib\imagemagick.tool\tools\mogrify.exe' in output in my Windows for ImageMagick 7. See this answer for details. +1 from me to mahesh madhusudan. Thanks.
  • virtuvious
    virtuvious over 5 years
    Thank you very much @СашаЧерных ....!!! I was trying to recollect why I had done this... as it was long back ago....
  • Violet Giraffe
    Violet Giraffe over 3 years
    Well great, I specified path but it nuked the original files nonetheless. Is there something wrong with my command line? This is Windows, hence the back slashes: mogrify -resize 2752 *.tif -path E:\1\
  • Dmytro Vyprichenko
    Dmytro Vyprichenko over 3 years
    @VioletGiraffe, options order matters, it should have been like that: mogrify -resize 2752 -path E:\1\ *.tif (note that *.tif is in the end). What you tried was like passing an image setting or operator, but it is not applicable to mogrify, afaik.
  • Violet Giraffe
    Violet Giraffe over 3 years
    I see, thank you very much for this answer-comment as well as the main answer!
  • yajnesh
    yajnesh about 3 years
    For someone who always gets confused with width and height. Width comes first. width x height