You are here

Index print or contact sheet (with exif and raw support)

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

An indexprint or contactsheet is an image that traditionally contains the negative images of an entire roll of film. Photographers used such sheets to index prints or as a proof page to decide which prints to enlarge.

Indexprint is a very useful tool to show the contents of a folder, for web design projects and galleries, personal work, or just to have a record of any archive folder in your (external) hard drives. Indexprint let you easily preview and catalog groups of images by displaying a series of (small) images on a single page or multiple pages.

From version 3.20 on indexprint has the possibility to show the exif information 'date and time', 'iso', 'speed', and 'F-number' if exist otherwise 'no exif data' will be printed. With the latest version 3.31 also JPEG XR formats can be printed. From v4 on the interface has been rebuild and also some new features has been added.

The pictures below are samples how indexprint/contactsheet works. For the default indexprint I have defined only three pictures on a row and three rows. I also wanted the filename including the extension printed. As result all pictures are scaled and centered within there respective minipages.

Quick overview Indexprint V4 development (v3.33 has no background and lettertype/color)

Examples of Indexprint usage (v3.33 and v4)
Default indexprint. Images are complete printedIndexprint used as a mosaicprint
Indexprint with ratio 1:1 choosen. Images are cropped.Indexprint with ratio 16:9 choosen. Images are cropped.
Indexprint with ratio 16:9 and rotate images checked. Images are cropped.....
Preview/screenshot Indexprint v4 development (v3.33 has only one window)
Read and Save pagePage options page
Image options page.other page.

Indexprint is the same program as contactsheet v2.xx (http://registry.gimp.org/node/120) but has his own GUI designed with Glade, v2.xx uses PF-widgets. Reason is that a few problems with v2.xx cannot be easily solved i.e. the small screen problem, choosing a mix of imagetypes and size/ratio. These problems are solved in this new version. V3.xx uses also tooltips, also not possible in v2.xx.

This updated version works with version 2.6/2.8 of The Gimp, several imagetypes are supported.
Updated versions are first published on my website at http://www.sullockenzlin.demon.nl --> GIMP.

Download and Installation

The Indexprint plugin is tested on Windows XP SP3 and Linux Ubuntu 12.04 LTS (both 32 bits).
Installation notes given here are for windows only. On Linux: don't forget to make indexprint.py executable.

Indexprint can also be installed with Gimp Extensions Pack: http://registry.gimp.org/node/27656

Installation Gimp v2.6 and Indexprint v3.33
See my website http://www.sullockenzlin.demon.nl --> GIMP for details.

Installation Gimp v2.8.x and Indexprint v3.33
Download from the file attachments:
-Indexprint v3.33.zip
-add glade Gimp-2.8_32bit.zip (needed also for Lineborder 2)

1. Unpack Indexprint v3.33.zip and copie all the files (including the directories) to the user plugin dir of The Gimp.
2. Unpack "add glade Gimp-2.8_32bit.zip" and copie all the files to the appropiate directories of The Gimp.
3. First time you start Indexprint an "error" can occur. Indexprint don't know the location of your images and the location where you want to install your indexprint.

For JPG XR, raw and ps/eps files and exif information you need also to download and install:
- UFRAW plugin,
- Ghostscript/ghostview,
- pyexiv2 (needs also Python2.7.2/2.7.3 installed),
- JPEG XR plugin (it is possible you get a .dll error, search the registry for it)

Installation Gimp v2.8.x and Indexprint V4 development
Installation same as v3.33 except download "Indexprint development version" instead of Indexprint v3.33.zip.
This version is the bleeding edge towards v4. See my website for more details what has changed.
Do not use this version for commercial use for home use it is oke. This means that you should know your way around Linux or windows systems and that you should have an interest in tracking down bugs. On my systems it is working except sorting on exif and not all exif information can be included.

Changelog

Changelog can be found on my website http://www.sullockenzlin.demon.nl --> GIMP..

Note

For some reason translations aren't working anymore on windows (bugzilla 574520); Linux users have no problem. Affects also Lineborder 2.

GIMP Version: 
Code License: 

Comments

Just added a version without mbcs decoding. It should now work.

It's working now on my laptop, but I think I lack enough memory for the images, because it goes to save the contactsheet then the status bar stops, although the file does save properly. My primary goal was to help in getting this working for Ubuntu users by testing, so... success!

Thanks Mahvin.

Thanks for the update version. It works perfect in Ubuntu 10.10.

I opened gimp through the terminal to get any errors or other messages. I will put those below, in case there is something of importance for you.

thank you for tweaking your script.

gimp
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:106: Warning: unable to set property `xalign' of type `gfloat' from value of type `gchararray'
builder.add_from_file(UI_FILENAME)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton14_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton13_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton12_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton10_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton9_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton8_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton7_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton6_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton5_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton4_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton3_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton2_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_radiobutton4_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_radiobutton3_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_radiobutton2_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_radiobutton1_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_spinbutton1_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_combobox2_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_colorbutton_background_color_set'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_entry1_activate'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_filechooserbutton2_file_set'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton8_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_filechooserbutton1_file_set'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_entry2_activate'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton7_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton6_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton5_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton4_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton3_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton2_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_checkbutton1_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:109: RuntimeWarning: missing handler 'on_messagedialog2_response'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:161: Warning: unable to set property `xalign' of type `gfloat' from value of type `gchararray'
self.dialog.show()
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:166: Warning: unable to set property `xalign' of type `gfloat' from value of type `gchararray'
gtk.main() # event loop

I'm glad it is now working for you and of course for a lot of other people.

These missing handler warnings are not to worry about. On windows I don't see/I don't get these warnings. I will see what happens if I remove these handlers. Up to the next version.

http://www.linux.org/lessons/beginner/l14/lesson14b.html

The og in the command makes it executable for others and group, but it excludes you (U). If you want it to be executable for everyone you could

chmod ogu+x

or the same thing is

chmod a+x

I use numbers which also does the same thing

chmod 755 (gives me execution privileges and everyone else read permissions)

chmod 777 (gives everyone execution privileges)

I messed up the bottom part.

chmod 755 my_awesome_script

and the script would become "executable" (and readable) for the outside world. (7 - 4 read, 2 write 1 executable for you, 4 read and 1 executable for group and others). You could also use chmod og+rx my_awesome_script The script is then "converted" into a "program" so to speak. You have also converted yourself into a "web developer" with the right to hang your shingle on the door.

Always nice to know. Thanks for the information.

I made my script executable with chmod 755......... I just re did it with your command chmod og+x this ultimately did not make any visible difference.

then I opened gimp from the terminal. There was no errors reported in the terminal when gimp opened. but when I opened the Indexprint the following errors were given:

********************************************************************************************
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:100: Warning: unable to set property `xalign' of type `gfloat' from value of type `gchararray'
builder.add_from_file(UI_FILENAME)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton14_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton13_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton12_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton10_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton9_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton8_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton7_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton6_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton5_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton4_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton3_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton2_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_radiobutton4_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_radiobutton3_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_radiobutton2_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_radiobutton1_group_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_spinbutton1_change_value'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_combobox2_changed'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_entry1_activate'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_filechooserbutton2_file_set'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton8_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_filechooserbutton1_file_set'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_entry2_activate'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton7_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton6_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton5_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton4_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton3_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton2_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:103: RuntimeWarning: missing handler 'on_checkbutton1_toggled'
builder.connect_signals(self)
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:154: Warning: unable to set property `xalign' of type `gfloat' from value of type `gchararray'
self.dialog.show()
/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py:159: Warning: unable to set property `xalign' of type `gfloat' from value of type `gchararray'
gtk.main() # event loop
*******************************************************************************************

When I clicked the "ok" but to make it produce the IndexPrint it then gave the following errors:

*********************************************************************************************
Traceback (most recent call last):
File "/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py", line 195, in on_dialog1_response
self.docontactsheet()
File "/home/acreech/.gimp-2.6/plug-ins/indexprint/gui.py", line 320, in docontactsheet
select_part_of_filename)
File "/home/acreech/.gimp-2.6/plug-ins/indexprint/GenerateIndexprint.py", line 606, in contactsheet
Dump_Filename_list, Sorted_Images, part_select)
File "/home/acreech/.gimp-2.6/plug-ins/indexprint/GenerateIndexprint.py", line 123, in get_images
for dirpath, dirnames, filenames in os.walk(original_location.decode('mbcs'), topdown=True):
LookupError: unknown encoding: mbcs
*********************************************************************************************

I wish I could help more interpreting these errors, but I am at the beginning stages of learning Python and this is over my head.

For an answer look above. mbcs is the problem

Pages

Subscribe to Comments for "Index print or contact sheet (with exif and raw support)"