CS 107: Pictures and Sounds: Programming with Multimedia
Kalamazoo College
Spring 2008
Programming Project 2
Collage
This programming project may be done individually or in groups of two.
Keep in mind that you may not work
with the same person on more than two
of the programming projects, excluding the final
project. If you work with a teammate, hand in one
copy of your code with both names on it. It is okay to get help from the
TAs and/or the instructor if you get stuck, but you should try to do it
on your own first.
The objective of this project is to combine a number of the features
we have learned up until this point for manipulating pictures with some
creative expression to create a collage from one image.
Creating the Collage
- Choose an image that you find visually appealing. It could be
from the MediaSources folder, your own collection, or from the Web
(legally).
If you are doing the project individually:
- Your collage must include an original picture, along with a
number of variations of that picture (see below). You might decide
to place the original picture in the center first, and then copy
your other variations around it, or you might decide to place your variations first,
and then copy the original picture so that it overlaps, or even blends with, the
variations. Use your own creative freedom to decide how you want to lay
out the pictures.
- Your collage must include at least 4 of the techniques,
listed below, applied to the original
image. (You may also choose some of your own techniques or combinations
of these techniques.)
If you are doing this project with a partner:
- Your collage must include two original pictures, along with a
number of variations of those pictures. Together, come up with an idea
of how you want to lay the pictures out.
- Your collage must include at least 3 variations of each
original picture, but no more than 2 of the same variations on
both. (So you need to use at least 4 variations.)
Variations we have experimented with include:
- scale (up or down)
- blur
- negative
- grayscale
- sepia
- posterize
- crop
- reflection
- rotation
- drawing
- graph over top
- blend
- background subtraction
- other color manipulations (reduce red, clear blue, sunset
effect, etc)
Design Questions: How many
variations of the original image do you want to include? Will any of
them be scaled down or cropped? How big should your new canvas for the
collage be? How do you determine this? What functions do you need from
other labs? What color effects would look
creatively pleasing with your image choice?
- Write functions (or copy some from previous labs and mini-labs)
to achieve the variations you choose. You should also have a function
that puts everything together to create the collage. This function is
necessary so that you have a record of how you created the collage. If
you just create it from the command line, there is no way to see how it
was made.
- Once you have created something you are pleased with, consider
adding a matte around the collage.
- Be sure that you have included appropriate documentation -
program documentation at the top of your file, as well as comments
before each function describing them. It is also a good idea to include
comments inside your collage function to tell which picture is getting
copied into which part of the collage.
- Turn in a hard copy of the functions you used to create your
collage.

- Display your collage on your course web page.