Archive for October 1st, 2007

Create thumbnails giving attention to the orientation

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.

  1. Download the thumbnail-script and modify the script to your needs (See more at the bottom)
  2. Create the folder “~/.gnome2/nautilus-scripts/” and copy the script into this folder named create_tn
  3. Make it executable
    (chmod a+x ~/.gnome2/nautilus-scripts/create_tn)
  4. Restart nautilus per killall nautilus
  5. 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


October 2007
M T W T F S S
1234567
891011121314
15161718192021
22232425262728
293031  

Blog Stats

  • 383,774 hits