Image Editor

Assignment 7 - October 15, 2006
Due: 8:00AM Sunday, October 22, 2006. In the SVN repository
Language: Any programming language of your choice

Objective:

You will implement a picture editor that is capable, but not limited, to the following features:

While you are free to use any language or framework that you choose, we suggest taking a look at Java and the facilities that it provides. Here are some links:

Students in the past have also had success with using ImageMagick to perform image manipulation. There are bindings for interfacing ImageMagick with most programming languages. ImageMagick lets your perform the image manipulations, but you still need a toolkit for the GUI itself.

If you have any questions about Java Swing, Eclipse or Java 2D, post your questions on the newsgroup. Try to pick a language that is suitable to the project. Unless you've done this kind of programming before, it is likely that using C/C++ will be much harder than using something like Java or C#. Also, if anything is ambiguous, ask questions early!

When working with GUIs, it's important to keep a clean separation between the model, the view, and often the controller. Keeping these separated is called the model-view-controller pattern. Related links: switching UI and a song.

For this application, it is easy to predict some of the changes it will go through in its lifetime. For example, it is likely you would want to extend your program to open new kinds of files or perform new kinds of operations on images. Therefore, try to design your program so these kinds of changes are easy to make.

Finally, don't forget to read other students' code on Sunday, as per your section's rules.

Grading: