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: 


I have posted a new version of contact sheet and I have also renamed it to index print (
Differences between V2.xx and V3.xx:
1. using Glade for the GUI instead of PF-widgets
2. No problem anymore with small screens.
3. You can now choose one or more image types to include, not possible in v2.xx
4. You can now choose a size or ratio for the images, not possible in v2.xx
5. uses tooltips, not possible in v2.xx
6. rotate images, not possible in v2.xx
7. include or exclude filename extension, not possible in v2.xx

Known problems/limitations (V2 and V3):
Look at

Why not updating this registry entry? Because I am not the owner of this entry and therefore cannot update this entry on regular base. This plugin (v2.12 and later) will be maintained by me you will find the updates on my website ( --> gimp). Updating this registry entry point depends on RGilham.

The latest version of contactsheet is v2.12. Works with winXP SP3 and GIMP v2.6.8. It is released in janaury 2010 and has several new options including a French and Dutch translation. Thanks to Herve for the French translation. You can find the latest release (including the translation files and manual) on my website (I don't have admin rights for this plugin to modify). There is also a contactsheet plugin for download for small screens.

From ingo (jan2008): Is it possible to crop all picture to be square, so that the index is regular? Yes with my photoprint plugin you can (not yet published, see my website for download). Note: photoprint will be integrated in v3 of contactsheet (if possible).

Please post a link to your website that contains the new version. I could not find it using the obvious search.

May I suggest that you start a new thread here with the latest version? (Since you don't have rights to update this version.) ( I assume that the original author is no longer maintaining it.)

The version in this thread has problems with its registration. I believe the registration parameters were copied from an outdated (but still working?) plugin that uses deprecated (no longer recommended, but still supported) forms of parameters.

Should not the plugin register with label="Contact Sheet" and menu="(Image)/File/Create". (I actually used menu=(Image)/Filters to get it to install.) ???

I tried label="Contact Sheet" and menu="Save" but got the error:
attempted to install Save procedure "python-fu-contact-sheet" which does not take the standard Save Plug-In arguments: (INT32, IMAGE, DRAWABLE, STRING, STRING). ( I elided the less than, greater than chars from the above.)

I think the problem is: Contact Sheet is not a Save plugin, its a Load plugin. It creates an image. The fact that it loads from many other files is a complication. It might mean that you can't register like other Load plugins.

From your other posts, it seems like you are doing a major rewrite. May I suggest that you look at what is done in other imaging programs, for contact sheet like functions. I can't believe it has not already been done for Gimp, or if not, there might be a discussion somewhere about why it hasn't been done or about what it should look like.

Good luck

If you look just below the photographs you will find a link to my website.

The original author is a busy man and I have still contact with him. He was trying to give me some admin rights for this plugin but he doesn't know how to do that. As far as I know he has contacted Ingo but I'm no sure.

The version on this site is rearly old and one shouldn't use it anymore.

Use menu="(Image)/File/Create" is a great idea. That should be a better place for this plugin I've thought about this already in the past but never changed it.

Contactsheet has one major problem: the GUI has been grown out of my screensize (therefore I bought a bigger screen ;-) ). On request I changed contactsheet to a version contactsheet-smallscreen with less options but (read the comments for this node) in the same time I decided to redesign the GUI writing it with Glade (so it's not a major rewrite I think).
There is one other contactsheet on the Gimp registry but that one is not working. Of course there are a lot of other programs on the internet but not integrated within Gimp. Perhaps there is a discussion somewhere I really don't know.
Once I decided rewriting the GUI with Glade the problems began: documentation (API's and so on) and as you have noticed already I'm not the only one. I searched a couple of weeks for information about integrating and registering Glade, Python in Gimp but found nothing useful until I read a german article (from schumaml; with a little working example. And than of course your makeshortcut and inspect plugin, nice examples where I was waiting for. But for now I've trouble with Glade itself: chrashing unexpectedly. Why I still don't know, I'm still searching and waiting for the new Glade version 3.7.0. In the mean time I study your plugins try some code, make small examples, reading Glade tutorials and so on.

Do you mean Glade the app crashes, or your app crashes when it uses a Glade produced file? I think Glade the app has crashed just a few times for me, with no harm done. I am on Ubuntu.

Just an idea, but an application that makes another image whose pixels are themselves compressed images seems to me to be very similar to contactsheet. You call the pixelize plugin to compress the original, then choose from a set of other compressed images that you know the average color and brightness of, to replace each pixel. You've seen it, its popular in printed advertising etc. Maybe its already been done for Gimp. As if you need another project to work on.

If you get stumped with Glade or Python, post a question.

Glade the app is chrashing. I've build and modified the GUI with Glade and saved it. Next day when I try to reopen the modified GUI, Glade chrashes for unknown reasons. Then I tried several times to read it and suddenly it reopens again without chrashing but all my modifications are gone. Modify it again, save it, close Glade and then try to read the GUI again: no way, chrashing again. You are right I think I post a question on the Glade forum about this. By the way I'm on winXP SP3.

Small problem - you force the page background to be white and in my most recent work I had been working with a white foreground - thus the text appeared to be missing and I restarted the plugin multiple times trying to sort out why I wasn't getting the text to show (changing margins, etc.)

Once I noticed the white foreground color I changed it and all worked fine - but if you're not going to take *all* the current colors perhaps it should be an option to set the foreground color or at least to note that this is the behaviour.

Otherwise, very nice program and it's working well on 2.6.

Do you mean with labels the "Include filenames" option?? If yes as far as I know filenames are always printed in black but yours are white???

I have tried to cancel out the fill command and then my backgroud became black and because the filenames are printed black you cannot read the filenames anymore. That is of course correct.

Perhaps you can send me an small example I can play with and update the plugin or make a note. Go to my website (follow the link just below the pictures), nearly at the bottom of that page you will find my emailaddress.


I'm missing something. Installed but don't find Contact Sheet. I tried following these instructions: and don't get the gimp-python console. What am I doing wrong? System: - Windows XP - Gimp 2.6.3 Thanks -Allen

In windows you need to add python support to gimp. that is no easy how add a plugin ,as example require also unistall and reinstall gimp. but is not difficult, i included all what is needed including instruction a single pack here That should be sufficient anyway here you may found more details,


Subscribe to Comments for "Contact Sheet "