There is now phatch. Use the really nice tool to create thumbnails and other batch processes instead! You can install it with
sudo apt-get install phatch
Every now and then I need to get thumbnails of my pictures. I found some solutions, that create thumbnails, but none of them gave attention to the orientation of the image. So if I wanted to resize the images to 640×480 than the landscape pictures had a correct resolution of 640x480px but the portrait pictures had something like 640×850 or even 640×480 (deforming the picture to landscape). So I wrote a script to do this job for me.
Installation
You need to install imagemagick to get the script working. (sudo apt-get install imagemagick
).
I installed the script as nautilus-script.
- Download the thumbnail-script and modify the script to your needs (See more at the bottom)
- Create the folder “~/.gnome2/nautilus-scripts/” and copy the script into this folder named create_tn
- Make it executable
(chmod a+x ~/.gnome2/nautilus-scripts/create_tn
) - Restart nautilus per
killall nautilus
- Now you can start the script by going into the folder where your original images are and right click anywhere in the white area or on a file and select Scripts -> create_tn.
Now the script creates thumbnails of all the images of your current directory and places it into the subfolder thumbnails.
Modify the script to your needs
- Change the resolution of the thumbnails: Change the variables long and short in line 4 and 5. eg. use long=”1024″ and short=”768″ if you want a landscape resolution of 1024×768 and portrait resolution of 768×1024.
- Ask every time for a resolution: If you want every time another resolution just uncomment the lines 11-14. Now you can enter every time you start the script a resolution like 800×600 or 1024×768 so width x height without spaces.
- Use a better quality: The script uses a quality of 80% for image resizing. If you need a better one you can change it in line 34 by modifying the number after “-quality”. So you can replace 80 by 60, 100 or every other integer number you want.
Script-Sourcecode
If the Download from Rapidshare does not work you can copy and save the source:
#!/bin/bash
# Define a fixed resolution
long=“110”
short=“82”
## Enter a resolution every time
## Uncomment the next lines if you want to enter the resolution
## each time manually
#resolution=`zenity –entry –text=”Resolution: (eg. 1024×768)”`
#posx=`expr index $resolution x`
#long=${resolution:0:$posx-1}
#short=${resolution:$posx}
# Filecount for progressbar
progress=0
filecount=`find -maxdepth 1 -iname “*.jpg” | wc -l`
let “inc=100/$filecount”
mkdir -p thumbnails
# Creating thumbnails
(for i in *.jpg *.JPG; do
echo “$progress”;
echo “# Resizing $i”;
width=`identify -format %w $i`
height=`identify -format %h $i`
if [ $width –ge $height ]; then
size=“${long}x${short}”
else
size=“${short}x${long}”
fi
convert –resize $size –quality 80 $i thumbnails/$i
let “progress+=$inc”
done
) | zenity —progress —title “$Creating thumbnails…” —percentage=0