You are here

Contact Sheet

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0
Rate this item!

A python script that generates a contact sheet or index print containing a configurable number of images. Multiple sheets are generated, the filename can also be included.

Hey if you find this plugin useful or useless send me an email, it has been downloaded 1000's of times but very seldom do I get any feedback.

To install copy to ~/.gimp?-?/plug-ins/ directory or /usr/lib/gimp2-0/plug-ins/ and make executable with chmod +x

This updated version works with version 2.4 of The Gimp, tiff support is included.

Thanks to Elmar at for the version update and language translations.

Once again thanks the Elmar who has been responsible for all of the updates.

Known problems

1. Set topmargin at least 5 mm otherwise contactsheet page will not be visible.
2. German characters (ie umlaut) in the filename will not be recognized and gives an error. Plugin stops.
3. Printing with GIMP gives a rightshift of the contactpage for unknown reasons. Use Gutenprint plugin instead.

Version history

version 2.16 (released 16-Dec-2011)

Updated to latest current version - thanks to Elmar again.

version 2.12 (released 04-jan-2010)

1. Added option to disable the extension to print. Useful if you wish only a name to the photo. I used it to print a lot of passport photographs (classroom of my child) on a single sheet.
2. Added French language pack v1.0. Thanks to Hervé for the French translation.
3. Updated Dutch language pack v1.4.
4. Updated localization file.

version 2.11 (released 30-oct-2009)

1. Added .bmp support.
2. Updated Dutch language pack v1.3.
3. Updated localization file.

version 2.10 (released 22-sept-2009)

1. Added simple printing capabilities. You have to experiment with your printer for the best results. Very important: the plugin uses the default Gimp builtin printer driver (will be changed in future releases). Unfortunatly I cannot set any of the parameters (pagesize, margin, etc) you have to set the parameters of your printer first :(. Set margins in your printerdriver to zero and choose your correct papersize.
2. Added .ps/.eps support. The special .ps/.eps version of contactsheet has been removed. Remember to add ghostview/ghostscript to GIMP if you want to select an .eps/.ps type image otherwise contactsheet refused to work. For this reason selecting "all registered types" in imagetypes will exclude .ep/.eps types of images.
3. FIXED: "Under certain conditions it was possible that not all possible rows were placed on contactsheet". Problem has been solved.
4. Code has been partly rewritten.

version 2.06

1. FIXED: "It is possible that not all possible rows are placed on the contactsheet. These rows are placed on the next contactsheet." A miscalculation has been corrected. It was only visible when a large number of images per row was choosen without the filename option.
2. Margin round the image can now be changed in tenth of a mm.
3. Maximum number of images per row has been increased to 256.
4. Maximum number of rows has been increased to 256.
5. Maximum number of DPI has been increased to 1000.

version 2.05

1. A little 'error' (a testlog command has not been set to off) has been corrected, nothing else has been changed. Look for "../tmp/gimp.log" on your system, delete this file.

version 2.04

1. FIXED: "Set topmargin at least 5 mm otherwise contactsheet page will not be visible." Topmargin can now be as low as possible. It is the user responsebility to take care of the printable margin. For instance my printer (HP CP1700d) the left-right margin should be set at least 5mm otherwise that part of the image wil not be printed.
2. FIXED: "Textfile (if option is checked) is not emptied wih each batch run so it will grow to infinity. You have to manually empty/delete this file." Textfile is now emptied before information is written.

version 2.03

1. Margin round the image can now be changed from zero on.
2. Added "sorted images" as option.
3. Updated Dutch language pack to v1.2.
4. Updated localization file.
5. FIXED: "Files with an extension .j .jp .jpe .p .pc .t .ti .x .xc .pn , will be seen as images. If it is not a imagefile the plugin stops. Remove/move/rename all files with those extensions." It is not longer necessary to remove these files.

version 2.02

1. Margin round the image can now be changed
2. Font size can now be choosen. Be aware that fontsize automatically will be scaled down to fit the image width
3. added .XCF support
4. added a choice to save a text filelist from the printed images with the directory name where the image is located. Useful if you have a lot of images in several directory's. Name is the same as the contactpage name but with the .TXT extension
5. code has partly been rewritten

version 2.01

1. Dutch language pack added

version 2.00

1. now possible to make contactsheet of a whole directory including subdirs
2. two radiobuttons replaced by option buttons
3. added several paperformats
4. images are sorted in the way the systems sort the images
5. added extension in the filename
6. added support for pcx format
7. added making contactsheets of all registered formats in one batch
8. number of rows is now limited to paperheight (automatic scaled down if necessary)

Installation notes

Windows users:

The plugin works on the following system:
Windows XP pro SP3
GIMP v2.6.6
Python version 2.6.2c1 (r262c1:71369, Apr 7 2009, 18:44:00)

Note for installation on Windows.
First install Python -> restart
Install pygtk, pygobject, pycairo -> restart
(Re)install GIMP
Unzip the language pack (newer versions at Elmar's site)
Install language pack ( in the GIMP locale directory ([drive]:\Program Files\GIMP-2.0\share\locale\[your language dir]\
Install your plugin in: [drive]:\Documents and Settings\[user]\.gimp-2.6\plug-ins\ The plugin is now only available for you.

LINUX users

Install python
Copy the script to /home//.gimp-2.6/plug-ins/
make the script executable with chmod +x /home//.gimp-2.6/plug-ins/
Translations, not certain how to do this with linux yet will update when figured out

GIMP Version: 
Code License: 


Sorry, but I don't have much experience with Gimp. I've installed the plugin in C:\Programme\Graphics\GIMP-2.0\lib\gimp\2.0\plug-ins but I can't seem to find it in the Xtns directory. I have a Python installed, but still this does not seem to be of any help. Any help would be appreciated, this plugin seems to be what I need. Alex Win XP SP2 Gimp 2.4.2 Python 2.3.5 (#62, Feb 8 2005, 16:23:02)

Hi, Try C ://Documents and Settings/yourname/.gimp-xx/plugin or C ://Documents and Settings/yourname/gimp/plugin Relaunch Gimp. Menu 'Extn' ---> 'Batch' ---> 'Contact Sheet' Good luck Bulbab

Hello Robin, great job on the script. Just used it to generate 54 pages of thumbnailed images of jewelry for the wife (hobbyist jewelry maker). I noticed A4 paper size was available -- any plans to add U.S. paper sizes, such as 8.5 wide by 11.0 inches tall (we Yanks call it "letter size")? Thanks again for such a nice script, it worked beautifully.

It's an easy mod to Robin's script... in the def Contact_Sheet() function, add the following lines after the definition for 8x10: elif (contact_size == "Letter"): width,height = (216,279) elif (contact_size == "Legal"): width,height = (216,356) elif (contact_size == "Tabloid"): width,height = (279,432) Next, edit the register() section at the bottom, change the radio button options for contact_size like so: (PF_RADIO, "contact_size", "Contact page sheet size:", "A4", (("A4 (20.9x29.7 cm)", "A4"), ("Jumbo (10.2x15.2 cm)", "Jumbo"), ("6x8 (15.2x20.3 cm)", "6x8"), ("8x10 (20.3x25.4 cm)", "8x10"), ("Letter (8.5x11 in)", "Letter"), ("Legal (8.5x14 in)", "Legal"), ("Tabloid (11x17 in)", "Tabloid"))), Save the file and restart GIMP. - Dan

... and cool photos, too :) Is it possible to crop all picture to be square, so that the index is regular?

Currently it is not possible to crop the images to be square. But I will add this as an option to the script.


Subscribe to Comments for "Contact Sheet "