CSc 101: PPM Images

In class, we discussed how computers represent information (files) on a computer, and we specifically taked about images. We discussed many of the popular image formats at a high level. We looked at the PPM format in-depth, and saw specific examples of how an image is “assembled” in ppm format.

In this assignment, you will be writing several ppm images by-hand, based on some non-ppm example images.

3x3 Minecraft Face (5 points)

Above is a png image of a (magnified) 3-pixel by 3-pixel minecraft face. (For those of you who don’t know, Minecraft is a video-game, and the faces of the characters are typically 8x8 pixel images). For this first problem, you’ll write a “mini” minecreaft face that is only 3x3 pixels. You should write a 3x3 pixel ppm image that looks just like this one named 3x3-minecraft.ppm. You should “write” the image in a text editor like notepad (windows), TextEdit (mac), or atm (both). Make sure you are editing in “plain text” mode. You should not be saving this as a word document, or rich-text document.

8x8 Minecraft Face (10 points)

Above is a jpg image of a (magnified) 8-pixel by 8-pixel minecraft face. This is the typical size of a face in minecraft. You must write a PPM image that displays a minecraft face. However, you should not choose the same one seen above!!! Instead, go to and find a face there. This site can be used to browse all of the faces of every minecraft player (even yours, if you play). You must choose a face that has at least 8 unique colors in it. You should write an 8x8 pixel ppm image that looks just like this one named. Once you choose your face, take a screenshot of it and name it face-screenshot, and submit this along with your ppm image file. Then create the ppm image with a text editor. Name your image file username-minecraft.ppm, where username is the username of the face you are modeling yours after, found on the aforementioned website.

First Two Letters (15 points)

Above is a jpg image of a (magnified) 14-pixel by 7-pixel image of two letters. These two letters should be the first two letters (or numbers) of the username of the minecraft face you chose for part 1. You should write a picture by-hand that is at least 14x7 pixels with the initials of the character you chose. The background, first character, and second character should all be a different color. You may choose any colors you like, so long as they are significantly different from each-other, so that the initials can actually be read! Name this file first-two.ppm.

Hints and Suggestions

Use the class slides as a reference for how to assemble a ppm image. If those are insufficient, Wikipedia has a great description and examples of the Red-Green-Blue PPM format. Feel free to use that as reference. Or, ask a question on Piazza and come to office hours!

To download each of the sample images from this assignment spec, right-click on the image and select “download” from the menu.

To figure out what each pixel color is for the first problem, use a color picker tool on your computer. If you are on a Mac, you should use the Digital Color Meter application. If you are on windows, try installing and using a tool like Instant Eyedropper.

Make sure that you create a valid PPM image, which specifies the format, width/height, max color, as well as all of the actual color values for each pixel.

Editing the Images

To create a custom PPM image file on a Mac, the steps are:

On Windows, the steps should be similar:

Viewing the Images

If you have a Mac, you should be able to “view” a PPM image by just double-clicking it. On windows, you might not have a program already installed to do so. If not, you’ll need to download one. My best recommendation is GIMP. Just go to, download, and install to use.

Submission and Grading

It is due on 2/2/2018 at 5:00pm.

Turn in each of the files described in the spec (4 total, including the screenshot) the assignment 3 dropbox in D2L before the due date. Make sure to name the files exactly as this document specifies. In general, make sure to follow these instructions precisely.