The API header files are given here. You are supposed to include this header
file in your source and follow this API. Implement the API exactly as given. In case you feel there are inconsistencies in the API report the same immediately.
If you have trouble figuring out the comments in the API, here is a doxygen generated documentation of the same.
Put all your source in a image.cc file. If you do not want to put everything in one source file, use the given header file as a wrapper over your headers.
Make sure that you conform to the most current version of this API. Last API Revision done on : 22 Aug, 11:03 am
The Library -
Use ar to generate a libdiptools.a library. Here is one way to do it -
ar -r -ps libdiptools.a $(OBJS)
where $(OBJS) is a collection of all your *.o files. Read the ar man page to understand that command.
Another option is to use ld with the -shared option to make shared libraries. Read the ld man page to figure out how to do this.
Image Access Issues
You will write your own code to access (i.e. read/write) PGM (grayscale) images. The PGM format is explained in detail here. You may use the ascii/raw variant.
You will NOT use Horatio, ImageMagick or Gandalf or any other library for the same purpose.
Make sure that the images you write are viewable in xv or gimp.
The Frontend
Use Ncurses to develop simple frontend application for your library.
The frontend should allow the user to load images and access all the functions in the API.