cz.cuni.jagrlib.piece
Class HDRFileFormat

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultFileFormat
              extended by cz.cuni.jagrlib.DefaultRasterFileFormat
                  extended by cz.cuni.jagrlib.piece.HDRFileFormat
All Implemented Interfaces:
Breakable, DataFileFormat, Property, Template

public class HDRFileFormat
extends DefaultRasterFileFormat

HDR file format used in Radiance (RGBe RLE-encoded format).

Since:
0.25
See Also:
HDRFileFormat.java

Field Summary
protected static byte[] HEADER
          Binary file header.
protected static int MAX_ELEN
          Maximum scanline length for encoding.
protected static int MIN_ELEN
          Minimum scanline length for encoding.
protected static int MIN_RUN
          Minimum run length.
static RegPiece reg
          Static registration instance for this class.
protected static byte[] scanline
          RGBe scanline, byte order: [ Red, Green, Blue, Exp ].
 
Fields inherited from class cz.cuni.jagrlib.DefaultRasterFileFormat
CATEGORY, TEMPLATE_NAME
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.DataFileFormat
DOUBLE_STREAM
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CAUSTIC, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PHOTON, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_SHADOW, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_VOLUME, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
HDRFileFormat()
           
 
Method Summary
protected static void assertScanline(int width)
          Asserts minimum length of the scanline array (in pixels).
protected  void commonLoad(BitStream stream, RasterGraphics g)
          Common load code.
protected  void commonSave(BitStream stream, RasterGraphics g)
          Common save code.
 java.lang.String[] fileNameMasks()
          Returns file-name masks associated with the file-format type.
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 int headerLength()
          Length of file-format header (number of bytes which is necessary for file-format matching).
 double match(byte[] header, java.lang.String fileName)
          File-format match test.
protected static void oldReadScanline(int start, int len, java.io.InputStream is, int unget)
          Reads data from the old binary format into the scanline array.
protected static void readScanline(int len, java.io.InputStream is)
          Reads data in new RLE format (band-ordered) into the scanline array.
 void set(java.lang.String key, java.lang.Object value)
          Sets the given property.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
protected static void writeScanline(int len, java.io.OutputStream os)
           
 
Methods inherited from class cz.cuni.jagrlib.DefaultRasterFileFormat
loadFile, loadFile, saveFile, saveFile
 
Methods inherited from class cz.cuni.jagrlib.DefaultFileFormat
closeFile, init, readFloat, readLine, readParameters, readToken, readUnsigned16, readUnsigned16, readUnsigned32, writeFloat, writeLine, writeParameters, writeUnsigned16, writeUnsigned16, writeUnsigned32
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit
 
Methods inherited from interface cz.cuni.jagrlib.Breakable
setProgressListener, stop
 

Field Detail

HEADER

protected static final byte[] HEADER
Binary file header.


scanline

protected static byte[] scanline
RGBe scanline, byte order: [ Red, Green, Blue, Exp ].


MIN_ELEN

protected static final int MIN_ELEN
Minimum scanline length for encoding.

See Also:
Constant Field Values

MAX_ELEN

protected static final int MAX_ELEN
Maximum scanline length for encoding.

See Also:
Constant Field Values

MIN_RUN

protected static final int MIN_RUN
Minimum run length.

See Also:
Constant Field Values

reg

public static final RegPiece reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

HDRFileFormat

public HDRFileFormat()
Method Detail

assertScanline

protected static void assertScanline(int width)
Asserts minimum length of the scanline array (in pixels).


oldReadScanline

protected static void oldReadScanline(int start,
                                      int len,
                                      java.io.InputStream is,
                                      int unget)
                               throws java.io.IOException
Reads data from the old binary format into the scanline array.

Parameters:
start - Starting index into the scanline array (not pixel index!).
len - Length to read (in pixels).
is - Binary stream to read from.
unget - First byte read before calling this method (or -1 if none was).
Throws:
java.io.IOException

readScanline

protected static void readScanline(int len,
                                   java.io.InputStream is)
                            throws java.io.IOException
Reads data in new RLE format (band-ordered) into the scanline array.

Throws:
java.io.IOException

writeScanline

protected static void writeScanline(int len,
                                    java.io.OutputStream os)
                             throws java.io.IOException
Throws:
java.io.IOException

commonLoad

protected void commonLoad(BitStream stream,
                          RasterGraphics g)
                   throws java.io.IOException
Common load code.

Overrides:
commonLoad in class DefaultRasterFileFormat
Parameters:
stream - Opened input bit-stream.
g - Checked raster-graphics object.
Throws:
java.io.IOException

commonSave

protected void commonSave(BitStream stream,
                          RasterGraphics g)
                   throws java.io.IOException
Common save code.

Overrides:
commonSave in class DefaultRasterFileFormat
Parameters:
stream - Opened output bit-stream.
g - Checked raster-graphics object.
Throws:
java.io.IOException

set

public void set(java.lang.String key,
                java.lang.Object value)
Sets the given property.

Specified by:
set in interface Property
Overrides:
set in class DefaultProperty
Parameters:
key - Key string.
value - The new value.
See Also:
Property.commit()

get

public java.lang.Object get(java.lang.String key)
Gets the given property.

Specified by:
get in interface Property
Overrides:
get in class DefaultProperty
Parameters:
key - Key string.
Returns:
The actual value or null.

headerLength

public int headerLength()
Length of file-format header (number of bytes which is necessary for file-format matching).

Specified by:
headerLength in interface DataFileFormat
Specified by:
headerLength in class DefaultFileFormat
Returns:
Number of bytes from beginning of a file which are enough for file-format match test.
See Also:
match(byte[], java.lang.String)

match

public double match(byte[] header,
                    java.lang.String fileName)
File-format match test. Guesses whether the binary file-header (and file-name) can belong to this file-format type.

Specified by:
match in interface DataFileFormat
Specified by:
match in class DefaultFileFormat
Parameters:
header - Bytes from beginning of the file.
fileName - Optional file-name string.
Returns:
Probability of being my file-format type (0.0 .. no way, 0.5 .. maybe, 0.9 .. almost sure, 1.0 .. absolutely - no need to check another formats).
See Also:
headerLength(), fileNameMasks()

fileNameMasks

public java.lang.String[] fileNameMasks()
Returns file-name masks associated with the file-format type. Needs not be implemented in systems where "file-name -> file-type" mapping is irrelevant.

Specified by:
fileNameMasks in interface DataFileFormat
Specified by:
fileNameMasks in class DefaultFileFormat
Returns:
Array of wild-card file-name masks (e.g. ["*.hdr"]) or null.
See Also:
match(byte[], java.lang.String)

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.