Python Imaging Library (PIL)

7. The ImageTk module

This module is for use with the graphical user interface
functions of the Tkinter package. For more information
about the Tkinter widget set, see the local Tkinter page.

To import the ImageTk module:

import ImageTk

This module contains two class constructors:

ImageTk.BitmapImage(i,**options)

Given an image i, constructs a
BitMapImage object that can be
used wherever Tkinter expects an image object. The
image must have mode "1". Any keyword
options
are passed on to Tkinter. For example, the option
foreground=c can be used to display the pixels of value
1 in color c, while pixels of value 0 are
transparent.

ImageTk.PhotoImage(i)

Given an image i, constructs a PhotoImage
object that can be used wherever Tkinter expects an
image object.

Warning

There is a bug in the current version of the Python
Imaging Library that can cause your images not to
display properly. When you create an object of
class PhotoImage, the reference
count for that object does not get properly
incremented, so unless you keep a reference to that
object somewhere else, the
PhotoImage object may be
garbage-collected, leaving your graphic blank on
the application.

For example, if you have a canvas or label widget
that refers to such an image object, keep a list
named .imageList in that object,
and append all PhotoImage
objects to it as they are created. If your widget
may cycle through a large number of images, you
will also want to delete the objects from this list
when they are no longer in use.

Image data from an Image object
i2 is
pasted into the PhotoImage object.
To paste the new data into a given location, specify
the bbox
argument as a bounding box; this
argument can be omitted if i2 is the same size as the
PhotoImage object.