For example, I have two files:
aaa.jpg (with cat)
aaa.png (with dog)
As you can see, images are different, despite of their names, which are the same.
I want to convert both these images to one single format.
The basic attempt for this task is
mogrify -format jpg *.png
But it doesn't work, for obvious reasons (one folder cannot contain multiple files with the same name and extension).
Also, some notes from myself.
Please note, this is just example. In real life, it would be about 100-200 images.
From my point of view, there seems to exist at least 2 ways to fix this issue: add a timestamp to filename OR add random text. I think random text will be better because timestamps sometimes could be equal (if processing is very fast).
So, what do you suggest for this task, and how it could be done? Thanks.
Instead of mogrify
you can use convert
modifying the original file name with -set filename:f
, for example adding a suffix containing a counter:
convert *.png -set filename:f "%t_%p" "%[filename:f].jpg"
Where the meaning of %p
and %t
attributes are:
More details here.
If this is your starting scenario:
aaa.jpg
aaa.png
bbb.jpg
bbb.png
the final situation would be:
aaa.jpg
aaa.png
bbb.jpg
bbb.png
aaa_0.jpg
bbb_1.jpg