| java.lang.Object de.schlund.pfixxml.ImageInfo
ImageInfo | public class ImageInfo (Code) | | Get file format, image resolution, number of bits per pixel and optionally
number of images from
JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM, PGM, PPM and PSD files
(or input streams).
Use the class like this:
ImageInfo ii = new ImageInfo();
ii.setInput(in); // in can be InputStream or RandomAccessFile
ii.setDetermineImageNumber(true); // default is false
if (!ii.check()) {
System.err.println("Not a supported image file format.");
} else {
System.out.println(ii.getFormatName() + ", " + ii.getMimeType() +
", " + ii.getWidth() + " x " + ii.getHeight() + " pixels, " +
ii.getBitsPerPixel() + " bits per pixel, " + ii.getNumberOfImages() +
" image(s).");
}
You can also use this class as a command line program.
Call it with a number of image file names as parameters:
java ImageInfo *.jpg *.png *.gif
or call it without parameters and pipe data to it:
cat image.jpg | java ImageInfo
Known limitations:
- When the determination of the number of images is turned off, GIF bits
per pixel are only read from the global header.
For some GIFs, local palettes change this to a typically larger
value. To be certain to get the correct color depth, call
setDetermineImageNumber(true) before calling check().
The complete scan over the GIF file will take additional time.
- Transparency information is not included in the bits per pixel count.
Actually, it was my decision not to include those bits, so it's a feature! ;-)
Requirements:
The latest version can be found at http://www.geocities.com/marcoschmidt.geo/image-info.html.
Written by Marco Schmidt.
This class is contributed to the Public Domain.
Use it at your own risk.
Last modification 2002-04-10.
History:
- 2001-08-24 Initial version.
- 2001-10-13 Added support for the file formats BMP and PCX.
- 2001-10-16 Fixed bug in read(int[], int, int) that returned
- 2002-01-22 Added support for file formats Amiga IFF and Sun Raster (RAS).
- 2002-01-24 Added support for file formats Portable Bitmap / Graymap / Pixmap (PBM, PGM, PPM) and Adobe Photoshop (PSD).
Added new method getMimeType() to return the MIME type associated with a particular file format.
- 2002-03-15 Added support to recognize number of images in file. Only works with GIF.
Use
ImageInfo.setDetermineImageNumber with
true as argument to identify animated GIFs
(
ImageInfo.getNumberOfImages() will return a value larger than 1 ).
- 2002-04-10 Fixed a bug in the feature 'determine number of images in animated GIF' introduced with version 1.1.
Thanks to Marcelo P. Lima for sending in the bug report.
|
check | public boolean check()(Code) | | Call this method after you have provided an input stream or file
using
ImageInfo.setInput(InputStream) or
ImageInfo.setInput(DataInput) .
If true is returned, the file format was known and you information
about its content can be retrieved using the various getXyz methods.
if information could be retrieved from input |
getBitsPerPixel | public int getBitsPerPixel()(Code) | | If
ImageInfo.check() was successful, returns the image's number of bits per pixel.
Does not include transparency information like the alpha channel.
number of bits per image pixel |
getFormat | public int getFormat()(Code) | | If
ImageInfo.check() was successful, returns the image format as one
of the FORMAT_xyz constants from this class.
Use
ImageInfo.getFormatName() to get a textual description of the file format.
file format as a FORMAT_xyz constant |
getHeight | public int getHeight()(Code) | | If
ImageInfo.check() was successful, returns one the image's vertical
resolution in pixels.
image height in pixels |
getMimeType | public String getMimeType()(Code) | | If
ImageInfo.check() was successful, returns a String with the
MIME type of the format.
MIME type, e.g. image/jpeg |
getNumberOfImages | public int getNumberOfImages()(Code) | | Returns the number of images in the examined file
if setDetermineImageNumber(true); was called before
a successful call to
ImageInfo.check() .
number of images in file |
getWidth | public int getWidth()(Code) | | If
ImageInfo.check() was successful, returns one the image's horizontal
resolution in pixels.
image width in pixels |
main | public static void main(String[] args)(Code) | | To use this class as a command line application, give it either
some file names as parameters (information on them will be
printed to standard output, one line per file) or call
it with no parameters. It will then check data given to it
via standard input.
Parameters: args - the program arguments which must be file names |
setCollectComments | public void setCollectComments(boolean newValue)(Code) | | |
setDetermineImageNumber | public void setDetermineImageNumber(boolean newValue)(Code) | | Specify whether the number of images in a file are to be
determined - default is false .
Will only make a difference with file formats that do support
more than one image like GIF.
If this method is called with true as argument,
the actual number of images can be queried via
ImageInfo.getNumberOfImages() after a successful call to
ImageInfo.check() .
Parameters: newValue - will the number of images be determined? |
setInput | public void setInput(InputStream inputStream)(Code) | | Set the input stream to the argument stream (or file).
Parameters: inputStream - the input stream to read from |
|
|