Reputation: 51807
According to the ImageMagick documentation, I would expect this:
convert fountain-pen1.jpg fountain-pen2.jpg handwriting.jpg -resize 400x400\> -set filename:f '%t_smol.%e' '%[filename:f]'
to result in fountain-pen1_smol.jpg fountain-pen2_smol.jpg handwriting_smol.jpg
.
Instead, it only creates fountain-pen1_smol.jpg
.
What am I doing wrong here?
I've also tried with just *.jpg
which results in the same output.
convert -version
Version: ImageMagick 6.9.7-4 Q16 arm 20170114 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib
Upvotes: 2
Views: 961
Reputation: 5385
With ImageMagick you'll generally need to set that "filename:" variable right after reading in the images. Try this...
convert img1.jpg img2.jpg img3.jpg \
-set filename:f "%[t]_smol.%[e]" -resize 400x400\> "%[filename:f]"
That reads in the images, sets those output filenames right away, then performs the resizing operation, then writes the output files with the given names. Be aware that changing the order of the list or the number of images within the command can create unexpected results.
I've used this command successfully with IM 6.8.9 in bash. It works with 6.9 and 7.0 versions in Windows by changing the continued-line backslashes "\" to carets "^", and deleting the backslash and putting the resize "400x400>" inside double quotes.
Upvotes: 1
Reputation: 207445
Mmm... sometimes you need to give ImageMagick a hint to create more output files than it is expecting to, using +adjoin:
convert fountain-pen1.jpg fountain-pen2.jpg handwriting.jpg -resize 400x400\> -set filename:f '%t_smol.%e' +adjoin '%[filename:f]'
It guesses this if you put a %02d
or somesuch in the filename, but doesn't know that for your use case.
Upvotes: 2