|
JIU 0.12.0 Homepage | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sourceforge.jiu.ops.Operation
net.sourceforge.jiu.codecs.ImageCodec
net.sourceforge.jiu.codecs.GIFCodec
A codec to write Compuserve GIF (Graphics Interchange Format) files.
Only writing GIF files is supported right now.
Reading GIF files with JIU can be done with the ToolkitLoader
class which uses the image reader built into the Java runtime library (Toolkit
class).
That reader has supported GIF since Java 1.0.
BilevelImage
,
Gray8Image
and
Paletted8Image
.
GIF only supports up to 256 colors in an image, so
you will have to use one of the quantization classes to reduce
a truecolor image to 256 or less colors before you can save it
with this codec.
OutputStream
, DataOutput
and RandomAccessFile
.
ImageCodec
's bounds concept is supported.
A user of this codec can specify a rectangular part of the input image
that will be saved instead of the complete image.
GIFCodec codec = new GIFCodec(); codec.appendComment("Bob and Susan at the Munich airport (2002-06-13)."); codec.setImage(image); // BilevelImage, Gray8Image or Paletted8Image codec.setInterlacing(true); codec.setFile("output.gif", CodecMode.SAVE); codec.process();
Interlaced files store the image in four passes, progressively adding rows until the complete image is stored. When decoding, the progressive display of interlaced files makes it supposedly quicker to find out what's displayed in the image.
On the other hand, transmission typically takes longer, because interlacing often leads to slightly larger files. When using interlaced mode, lines that get stored one after another have some room between them in the image, so there are less similarities between consecutive lines, which worsens compression ratio (compression works better with a lot of similarities in the data to be compressed).
ImageCodec.getNumComments()
.
If there is at least one comment to be written to the file, version 89a
will be used, 87a otherwise.
Gif89a.txt
that I found
somewhere on the Net they grant a royalty-free license for use of the
format to anyone - in order to improve the popularity of the format, I guess.
I don't think that it should be possible to put a file format under a copyright,
but all that Compuserve asks for in exchange for freely using the format
is the inclusion of a message.
So, here is that message:
"The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark property of CompuServe Incorporated."
Constructor Summary | |
GIFCodec()
|
Method Summary | |
int |
getBackgroundColor()
Returns the index of the background color. |
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 |
isInterlaced()
Returns if the image is or will be stored in interlaced ( true )
or non-interlaced mode (false ). |
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. |
void |
setBackgroundColor(int colorIndex)
Specify the value of the background color. |
void |
setInterlacing(boolean useInterlacing)
Specifies whether the image will be stored in interlaced mode ( true ) or non-interlaced mode (false ). |
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, suggestFileExtension |
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 |
public GIFCodec()
Method Detail |
public int getBackgroundColor()
setBackgroundColor(int)
public String[] getFileExtensions()
ImageCodec
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.
getFileExtensions
in class ImageCodec
public String getFormatName()
ImageCodec
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)
.
getFormatName
in class ImageCodec
public String[] getMimeTypes()
ImageCodec
null
if none are available.
getMimeTypes
in class ImageCodec
public boolean isInterlaced()
true
)
or non-interlaced mode (false
).
setInterlacing(boolean)
public boolean isLoadingSupported()
ImageCodec
true
is returned this does not necessarily mean that all files in this
format can be read, but at least some.
isLoadingSupported
in class ImageCodec
public boolean isSavingSupported()
ImageCodec
true
is returned this does not necessarily mean that all types files in this
format can be written, but at least some.
isSavingSupported
in class ImageCodec
public void process() throws MissingParameterException, OperationFailedException
Operation
process
in class Operation
MissingParameterException
- if any mandatory parameter was not given to the operation
OperationFailedException
public void setBackgroundColor(int colorIndex)
0
.
colorIndex
- int value with the color (index into the palette) of the background colorgetBackgroundColor()
public void setInterlacing(boolean useInterlacing)
true
) or non-interlaced mode (false
).
useInterlacing
- boolean, if true interlaced mode, otherwise non-interlaced modeisInterlaced()
|
JIU 0.12.0 Homepage | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |