Package org.sunflow.image
Interface BitmapWriter
-
- All Known Implementing Classes:
EXRBitmapWriter
,HDRBitmapWriter
,IGIBitmapWriter
,JPGBitmapWriter
,PNGBitmapWriter
,TGABitmapWriter
public interface BitmapWriter
This interface is used to represents an image output format. The methods are tile oriented so that tiled image formats may be optimally supported. Note that if the header is declared with a 0 tile size, the image will not be written with identical sized tiles. The image should either be buffered so it can be written all at once on close, or an eror should be thrown. The bitmap writer should be designed so that it is thread safe. Specifically, this means that the tile writing method can be called by several threads.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
closeFile()
Close the file, this completes the bitmap writing process.void
configure(java.lang.String option, java.lang.String value)
This method will be called before writing begins.void
openFile(java.lang.String filename)
Open a handle to the specified file for writing.void
writeHeader(int width, int height, int tileSize)
Write the bitmap header.void
writeTile(int x, int y, int w, int h, Color[] color, float[] alpha)
Write a tile of data.
-
-
-
Method Detail
-
configure
void configure(java.lang.String option, java.lang.String value)
This method will be called before writing begins. It is used to set common attributes to file writers. Currently supported keywords include:- "compression"
- "channeltype": "byte", "short", "half", "float"
- Parameters:
option
-value
-
-
openFile
void openFile(java.lang.String filename) throws java.io.IOException
Open a handle to the specified file for writing. If the writer buffers the image and writes it on close, then the filename should be stored.- Parameters:
filename
- filename to write the bitmap to- Throws:
java.io.IOException
- thrown if an I/O error occurs
-
writeHeader
void writeHeader(int width, int height, int tileSize) throws java.io.IOException, java.lang.UnsupportedOperationException
Write the bitmap header. This may be defered if the image is buffered for writing all at once on close. Note that if tile size is positive, data sent to this class is guarenteed to arrive in tiles of that size (except at borders). Otherwise, it should be assumed that the data is random, and that it may overlap. The writer should then either throw an error or start buffering data manually.- Parameters:
width
- image widthheight
- image heighttileSize
- tile size or 0 if the image will not be sent in tiled form- Throws:
java.io.IOException
- thrown if an I/O error occursjava.lang.UnsupportedOperationException
- thrown if this writer does not support writing the image with the supplied tile size
-
writeTile
void writeTile(int x, int y, int w, int h, Color[] color, float[] alpha) throws java.io.IOException
Write a tile of data. Note that this method may be called by more than one thread, so it should be made thread-safe if possible.- Parameters:
x
- tile x coordinatey
- tile y coordinatew
- tile widthh
- tile heightcolor
- color dataalpha
- alpha data- Throws:
java.io.IOException
- thrown if an I/O error occurs
-
closeFile
void closeFile() throws java.io.IOException
Close the file, this completes the bitmap writing process.- Throws:
java.io.IOException
- thrown if an I/O error occurs
-
-