The HIPS Package
For the image manipluation part of our spreadsheet, we decided to use the HIPS image processing package. The HIPS package provides a large library of image processing functions, written in C, that enable us to perform image operations required by the spreadsheet.
The HIPS package uses its own image format, a special image header contains all the necessary information for the HIPS functions, for example the image size in bytes, the width and the height of the image. This header is stored with the image on disk, and when loaded into memory, contains a pointer to the image itself. The HIPS functions all take in a pointer to an image header, and return a pointer to a new image header created with the new image.
The images in HIPS can be of different types, or pixel formats. These include byte format, integer format, floating point format, and RGB format. The type we have chosen to use in our spreadsheet is a byte format image with 3 frames of data corresponding to the red, green and blue components of an image respectively.
In practice, the HIPS functions were fairly simple and easy to use, but their use of an internal image format made working with the images more difficult.
The advantage of using this package is that we get a large ready-made library of image processing functions which we would otherwise have had to write ourselves. The disadvantage of using HIPS is that we are effectively tied to the HIPS image format, and the HIPS method of storing images, which makes it difficult to convert or use images of other formats in our spreadsheet.