Batch processing tif images? Converting .tif to .jpeg
Solution 1
Easy. Install imagemagick:
sudo apt install imagemagick
Its simplest usage is:
convert File.tif File.jpg
It is smart and goes by your file extension.
Now, for doing batch conversions, we shall use a loop.
cd
into the directory where your tif files are.
then:
for f in *.tif; do echo "Converting $f"; convert "$f" "$(basename "$f" .tif).jpg"; done
Read also as:
for f in *.tif
do
echo "Converting $f"
convert "$f" "$(basename "$f" .tif).jpg"
done
That should do it!
Also, once you convert all of the files and verify the new jpg's integrity, just run rm *.tif
in that directory to delete all your old .tif files. Be careful with asterisks though, don't add a space after the *
, or you will delete all your files in the directory.
Tip: If you have a folder with subfolders that holds these images. You could use this for loop to find all .TIF files within that folder:
for f in $(find -name *.tif); do ...; done
Solution 2
I found this question while trying to do it myself; for future reference you can also do it like this:
convert *.tiff -set filename: "%t" %[filename:].jpg
or to put it in a subdirectory
mkdir jpg
convert *.tiff -set filename: "%t" jpg/%[filename:].jpg
Solution 3
Use mogrify
, the tool intended for batch processing inside ImageMagick
mogrify -format jpg *.tif
In case you don't have ImageMagick
:
sudo apt-get install imagemagick
Solution 4
The GIMP GUI Solution Using a Batch Process Plugin
Works in Ubuntu 18.04 using GIMP 2.8
Batch Processor Input dialog window
Batch Processor output dialog window
Installation Instructions
-
Download the current plugin file from DBP - David's Batch Processor homepage to your desktop. For Ubuntu 18.04 running Gimp 2. 8 the file that worked for me was dbpSrc-1-1-9.tgz.
-
Grab some GIMP development files:
sudo apt-get install libgimp2.0-dev gcc cpp g++
-
Switch to the system source code directory:
cd /usr/src/
-
Extract the plugin from your Desktop to its own source code directory. Replace
[username]
with your current username, and use the filename that you downloaded above in step 1:sudo tar -xvzf /home/[username]/Desktop/dbpSrc-1-1-9.tgz
-
Change to the plugin's source code directory:
cd dbp-1.1.9
-
Compile the plugin:
make
-
Install the plugin:
sudo make install
-
Start GIMP and you will find the plugin under Menu > Filters > Batch Process
Solution 5
Imagemagick should be able to convert them. It is a package of commandline programs, if you are OK with that.
Part of that is convert -
man convert:
convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
Related videos on Youtube
Comments
-
J R almost 2 years
I'm trying to mass convert a handful of
.tif
files. I found phatch could look like a good candidiate but I'm running Ubuntu 11.04. Looks like they don't have a.deb
for my version.Anyone have any alternatives to phatch or any other recommendations as to quickly batch convert
tif
tojpeg
files.I'm looking for a non-Photoshop (ala Wine) solution.
-
Slava Nikulin about 10 yearsYay for built-in filename handling.
-
sodiumnitrate over 9 yearsIs this supposed to print
Converting filename.tif
orConverting filename
? -
Matt over 9 years@sodiumnitrate it will say "Converting filename.tif". the
basename
command takes 2 arguments, for examplebasename file.tif .tif
will return "file" stripping the .tif extension away. You could modify the loop to say "Converting filename.tif to filename.jpg" with the same basename command, if you wished. -
wdkrnls about 9 yearsThis worked great for me with png files as well. The behavior for pdf's was different, however.
-
TFuto about 9 yearsI would love to see this working, however, this reported a Bus Error on ImageMagick 6.6.9-7 2014-03-06 Q16 (OpenMP) on Ubuntu 64. The accepted answer works fine.
-
0__ about 9 yearsA word of warning: This froze for me the entire system (GNOME 3) and I had to hard shut down the computer
-
muru almost 7 years
for f in *.tif
won't error out, butconvert *.tif
will. -
duhaime almost 7 yearsAh, thanks @muru! I thought the * expansion would be the same at the os level, but am happy to be corrected.
-
mrtnmgs almost 7 years
find
's first arg shoud be the path, so that last line should befor f in $(find . -name *.tif); do ...; done
(since wecd
ed in the directory before). I tried editing @Matt's answer but edits must be at least 6 chars for some reason. -
abhaga about 4 yearsFor a large number of files, this runs into memory issues. I split mine into few batches to use this.