JIU 0.14.3

net.sourceforge.jiu.codecs
Class BMPCodec

java.lang.Object
  extended by net.sourceforge.jiu.ops.Operation
      extended by net.sourceforge.jiu.codecs.ImageCodec
          extended by net.sourceforge.jiu.codecs.BMPCodec

public class BMPCodec
extends ImageCodec

A codec to read and write Windows BMP image files.

Typical file extensions are .bmp and .rle (the latter is only used for compressed files).

Bounds

This codec supports the bounds concept for loading and saving.

Supported BMP types when loading

There is no support for 16 bpp images or BI_BITFIELDS compression (for lack of test files).

Supported JIU image data classes when saving to BMP

There is no support for compressed BMP files when saving.

I/O classes

BMPCodec works with all input and output classes supported by ImageCodec (InputStream, OutputStream, DataInput, DataOutput, RandomAccessFile).

Problems

The RLE-compressed BMP files that I could test this codec on seem to have an end-of-line code at the end of every line instead of relying on the decoder to know when it has unpacked enough bytes for a line. Whenever this codec encounters an EOL symbol and has a current column value of 0, the EOL is ignored.

Usage examples

Write an image to a BMP file.
 BMPCodec codec = new BMPCodec();
 codec.setImage(image);
 codec.setFile("out.bmp", CodecMode.SAVE);
 codec.process();
 codec.close();
 
Read an image from a BMP file.
 BMPCodec codec = new BMPCodec();
 codec.setFile("image.bmp", CodecMode.LOAD);
 codec.process();
 codec.close();
 PixelImage image = codec.getImage();
 

Since:
0.7.0
Author:
Marco Schmidt

Constructor Summary
BMPCodec()
           
 
Method Summary
 String[] getFileExtensions()
          Returns all file extensions that are typical for this file format.
 String getFormatName()
          Returns the name of the file format supported by this codec.
 String[] getMimeTypes()
          Return the MIME (Multipurpose Internet Mail Extensions) type strings for this format, or null if none are available.
 boolean isLoadingSupported()
          Returns if this codec is able to load images in the file format supported by this codec.
 boolean isSavingSupported()
          Returns if this codec is able to save images in the file format supported by this codec.
 void process()
          This method does the actual work of the operation.
 String suggestFileExtension(PixelImage image)
          Attempts to suggest a filename extension.
 
Methods inherited from class net.sourceforge.jiu.codecs.ImageCodec
appendComment, checkBounds, checkImageResolution, close, getBoundsHeight, getBoundsWidth, getBoundsX1, getBoundsX2, getBoundsY1, getBoundsY2, getComment, getDataInput, getDataOutput, getDpiX, getDpiY, getImage, getImageIndex, getInputAsDataInput, getInputStream, getMode, getNumComments, getOutputAsDataOutput, getOutputStream, getRandomAccessFile, hasBounds, initModeFromIOObjects, isRowRequired, isTileRequired, removeAllComments, removeBounds, setBounds, setBoundsIfNecessary, setDataInput, setDataOutput, setDpi, setFile, setFile, setImage, setImageIndex, setInputStream, setOutputStream, setRandomAccessFile
 
Methods inherited from class net.sourceforge.jiu.ops.Operation
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BMPCodec

public BMPCodec()
Method Detail

getFileExtensions

public String[] getFileExtensions()
Description copied from class: ImageCodec
Returns all file extensions that are typical for this file format. The default implementation in ImageCodec returns null. The file extension strings should include a leading dot and are supposed to be lower case (if that is allowed for the given file format). Example: {".jpg", ".jpeg"} for the JPEG file format.

Overrides:
getFileExtensions in class ImageCodec
Returns:
String array with typical file extensions

getFormatName

public String getFormatName()
Description copied from class: ImageCodec
Returns the name of the file format supported by this codec. All classes extending ImageCodec must override this method. When overriding, leave out any words in a particular language so that this format name can be understood by everyone. Usually it is enough to return the format creator plus a typical abbreviation, e.g. Microsoft BMP or Portable Anymap (PNM).

Specified by:
getFormatName in class ImageCodec
Returns:
name of the file format supported by this codec

getMimeTypes

public String[] getMimeTypes()
Description copied from class: ImageCodec
Return the MIME (Multipurpose Internet Mail Extensions) type strings for this format, or null if none are available.

Specified by:
getMimeTypes in class ImageCodec
Returns:
MIME type strings or null

isLoadingSupported

public boolean isLoadingSupported()
Description copied from class: ImageCodec
Returns if this codec is able to load images in the file format supported by this codec. If true is returned this does not necessarily mean that all files in this format can be read, but at least some.

Specified by:
isLoadingSupported in class ImageCodec
Returns:
if loading is supported

isSavingSupported

public boolean isSavingSupported()
Description copied from class: ImageCodec
Returns if this codec is able to save images in the file format supported by this codec. If true is returned this does not necessarily mean that all types files in this format can be written, but at least some.

Specified by:
isSavingSupported in class ImageCodec
Returns:
if saving is supported

process

public void process()
             throws MissingParameterException,
                    OperationFailedException
Description copied from class: Operation
This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.

Overrides:
process in class Operation
Throws:
MissingParameterException - if any mandatory parameter was not given to the operation
WrongParameterException - if at least one of the input parameters was not initialized appropriately (values out of the valid interval, etc.)
OperationFailedException

suggestFileExtension

public String suggestFileExtension(PixelImage image)
Description copied from class: ImageCodec
Attempts to suggest a filename extension. The type of the argument image will be taken into consideration, although this will be necessary for some file formats only (as an example, PNM has different extensions for different image types, see PNMCodec). This default implementation always returns null.

Overrides:
suggestFileExtension in class ImageCodec
Parameters:
image - the image that is to be written to a file
Returns:
the file extension, including a leading dot, or null if no file extension can be recommended

JIU 0.14.3

Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Marco Schmidt