Batch resize images and output images to new folder with ImageMagick
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
richard
Updated on July 08, 2022Comments
-
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 over 9 yearsYou are right, but you can also call
mogrify
from any directory, for example I convert originary jpeg into png withmogrify -path /destination/path/ -adaptive-resize 5000 -unsharp 0x1 -format png /originary/path/*.jpeg
-
Matthew Morek over 8 yearsNote that output directories you're pointing to must exist, as ImageMagick will no create them, causing a
mogrify: unable to open image
error. -
inukaze over 6 yearsThis don't work with i try with png and put 1024x600 , all images are resized to 800x600 instead 1024x600
-
ashleedawg over 5 yearsThis 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 getCannot 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 over 5 yearsThank you very much @СашаЧерных ....!!! I was trying to recollect why I had done this... as it was long back ago....
-
Violet Giraffe over 3 yearsWell 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 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 over 3 yearsI see, thank you very much for this answer-comment as well as the main answer!
-
yajnesh about 3 yearsFor someone who always gets confused with width and height. Width comes first. width x height