A Content Handler for an Image Format: image/x-fits

That’s really all there is to content handlers. As one final example, I’ll show you how to write a content handler for image files. These differ from the text-based content handlers you’ve already seen in that they generally produce an object that implements the java.awt.ImageProducer interface rather than an Input Stream object. The specific example we’ll choose is the Flexible Image Transport System (FITS) format in common use among astronomers. FITS files are grayscale, bitmapped images with headers that determine the bit depth of the picture, the width and the height of the picture, and the number of pictures in the file. Although FITS files commonly contain several images (typically pictures of the same thing taken at different times), in this example we look at only the first image in a file.[29]

There are a few key things you need to know to process FITS files. First, FITS files are broken up into blocks of exactly 2,880 bytes. If there isn’t enough data to fill a block, it is padded with spaces at the end. Each FITS file has two parts, the header and the primary data unit. The header occupies an integral number of blocks, as does the primary data unit. If the FITS file contains extensions, there may be additional data after the primary data unit, but we ignore that here. Any extensions that are present will not change the image contained in the primary data unit.

The header begins in the first block of the FITS file. ...

Get Java Network Programming, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.