public class ImageWriter extends Object implements IFormatWriter
Modifier and Type | Field and Description |
---|---|
protected String[] |
compressionTypes
Compression types for all file format writers.
|
protected int |
current
Current form index.
|
protected String |
currentId
Name of current file.
|
private static ClassList<IFormatWriter> |
defaultClasses
Default list of writer classes, for use with noargs constructor.
|
private static org.slf4j.Logger |
LOGGER |
private String[] |
suffixes
Valid suffixes for all file format writers.
|
protected IFormatWriter[] |
writers
List of supported file format writers.
|
Constructor and Description |
---|
ImageWriter()
Constructs a new ImageWriter with the default
list of writer classes from writers.txt.
|
ImageWriter(ClassList<IFormatWriter> classList)
Constructs a new ImageWriter from the given list of writer classes.
|
Modifier and Type | Method and Description |
---|---|
boolean |
canDoStacks()
Reports whether the writer can save multiple images to a single file.
|
void |
changeOutputFile(String id)
Switch the output file for the current dataset.
|
void |
close() |
ColorModel |
getColorModel()
Gets the color model.
|
String |
getCompression()
Gets the current compression type.
|
String[] |
getCompressionTypes()
Gets the available compression types.
|
static ClassList<IFormatWriter> |
getDefaultWriterClasses() |
String |
getFormat()
Gets the name of this file format.
|
String |
getFormat(String id)
Gets a string describing the file format for the given file.
|
int |
getFramesPerSecond()
Gets the frames per second to use when writing.
|
MetadataOptions |
getMetadataOptions() |
MetadataRetrieve |
getMetadataRetrieve()
Retrieves the current metadata retrieval object for this writer.
|
Class<?> |
getNativeDataType()
Returns the native data type of image planes for this reader, as returned
by
IFormatReader.openPlane(int, int, int, int, int) or IFormatWriter.savePlane(int, java.lang.Object) . |
int[] |
getPixelTypes()
Gets the supported pixel types.
|
int[] |
getPixelTypes(String codec)
Gets the supported pixel types for the given codec.
|
int |
getSeries()
Returns the current series.
|
String[] |
getSuffixes()
Gets the default file suffixes for this file format.
|
Set<MetadataLevel> |
getSupportedMetadataLevels() |
int |
getTileSizeX()
Retrieves the current tile width
Defaults to full image width if not supported
|
int |
getTileSizeY()
Retrieves the current tile height
Defaults to full image height if not supported
|
IFormatWriter |
getWriter()
Gets the writer used to save the current file.
|
IFormatWriter |
getWriter(Class<? extends IFormatWriter> c)
Gets the file format writer instance matching the given class.
|
IFormatWriter |
getWriter(String id)
Gets the writer used to save the given file.
|
IFormatWriter[] |
getWriters()
Gets all constituent file format writers.
|
boolean |
isInterleaved()
Gets whether or not the channels in an image are interleaved.
|
boolean |
isSupportedType(int type)
Checks if the given pixel type is supported.
|
boolean |
isThisType(String name)
Checks if the given string is a valid filename for this file format.
|
void |
saveBytes(int no,
byte[] buf)
Saves the given image to the current series in the current file.
|
void |
saveBytes(int no,
byte[] buf,
int x,
int y,
int w,
int h)
Saves the given image tile to the current series in the current file.
|
void |
saveBytes(int no,
byte[] buf,
loci.common.Region tile)
Saves the given image tile to the current series in the current file.
|
void |
savePlane(int no,
Object plane)
Saves the given image plane to the current series in the current file.
|
void |
savePlane(int no,
Object plane,
int x,
int y,
int w,
int h)
Saves the given image plane to the current series in the current file.
|
void |
savePlane(int no,
Object plane,
loci.common.Region tile)
Saves the given image plane to the current series in the current file.
|
void |
setCodecOptions(CodecOptions options)
Sets the codec options.
|
void |
setColorModel(ColorModel cm)
Sets the color model.
|
void |
setCompression(String compress)
Sets the current compression type.
|
void |
setFramesPerSecond(int rate)
Sets the frames per second to use when writing.
|
void |
setId(String id)
Sets the current file name.
|
void |
setInterleaved(boolean interleaved)
Sets whether or not the channels in an image are interleaved.
|
void |
setMetadataOptions(MetadataOptions options) |
void |
setMetadataRetrieve(MetadataRetrieve r)
Sets the metadata retrieval object from
which to retrieve standardized metadata.
|
void |
setSeries(int series)
Sets the current series.
|
int |
setTileSizeX(int tileSize)
Will attempt to set the tile width to the desired value and return the actual value which will be used
|
int |
setTileSizeY(int tileSize)
Will attempt to set the tile height to the desired value and return the actual value which will be used
|
void |
setValidBitsPerPixel(int bits)
Sets the number of valid bits per pixel.
|
void |
setWriteSequentially(boolean sequential)
Sets whether or not we know that planes will be written sequentially.
|
private static final org.slf4j.Logger LOGGER
private static ClassList<IFormatWriter> defaultClasses
protected IFormatWriter[] writers
private String[] suffixes
protected String[] compressionTypes
protected String currentId
protected int current
public ImageWriter()
public ImageWriter(ClassList<IFormatWriter> classList)
public static ClassList<IFormatWriter> getDefaultWriterClasses()
public String getFormat(String id) throws FormatException, IOException
FormatException
IOException
public IFormatWriter getWriter(String id) throws FormatException
FormatException
public IFormatWriter getWriter()
public IFormatWriter getWriter(Class<? extends IFormatWriter> c)
public IFormatWriter[] getWriters()
public int getTileSizeX() throws FormatException
IFormatWriter
getTileSizeX
in interface IFormatWriter
FormatException
- Image metadata including Pixels Size X must be set prior to calling getTileSizeX()public int setTileSizeX(int tileSize) throws FormatException
IFormatWriter
setTileSizeX
in interface IFormatWriter
tileSize
- The tile width you wish to useFormatException
- Tile size must be greater than 0 and less than the image widthpublic int getTileSizeY() throws FormatException
IFormatWriter
getTileSizeY
in interface IFormatWriter
FormatException
- Image metadata including Pixels Size Y must be set prior to calling getTileSizeY()public int setTileSizeY(int tileSize) throws FormatException
IFormatWriter
setTileSizeY
in interface IFormatWriter
tileSize
- The tile height you wish to useFormatException
- Tile size must be greater than 0 and less than the image heightpublic Set<MetadataLevel> getSupportedMetadataLevels()
getSupportedMetadataLevels
in interface IMetadataConfigurable
public MetadataOptions getMetadataOptions()
getMetadataOptions
in interface IMetadataConfigurable
public void setMetadataOptions(MetadataOptions options)
setMetadataOptions
in interface IMetadataConfigurable
IMetadataConfigurable.setMetadataOptions(MetadataOptions)
public void changeOutputFile(String id) throws FormatException, IOException
IFormatWriter
changeOutputFile
in interface IFormatWriter
FormatException
IOException
public void saveBytes(int no, byte[] buf) throws FormatException, IOException
IFormatWriter
saveBytes
in interface IFormatWriter
no
- the image index within the current file, starting from 0.buf
- the byte array that represents the image.FormatException
- if one of the parameters is invalid.IOException
- if there was a problem writing to the file.public void saveBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, IOException
IFormatWriter
saveBytes
in interface IFormatWriter
no
- the image index within the current file, starting from 0.buf
- the byte array that represents the image tile.x
- the X coordinate of the upper-left corner of the image tile.y
- the Y coordinate of the upper-left corner of the image tile.w
- the width (in pixels) of the image tile.h
- the height (in pixels) of the image tile.FormatException
- if one of the parameters is invalid.IOException
- if there was a problem writing to the file.public void saveBytes(int no, byte[] buf, loci.common.Region tile) throws FormatException, IOException
IFormatWriter
saveBytes
in interface IFormatWriter
no
- the image index within the current file, starting from 0.buf
- the byte array that represents the image tile.tile
- the Region representing the image tile to be read.FormatException
- if one of the parameters is invalid.IOException
- if there was a problem writing to the file.public void savePlane(int no, Object plane) throws FormatException, IOException
IFormatWriter
savePlane
in interface IFormatWriter
no
- the image index within the current file, starting from 0.plane
- the image plane.FormatException
- if one of the parameters is invalid.IOException
- if there was a problem writing to the file.public void savePlane(int no, Object plane, int x, int y, int w, int h) throws FormatException, IOException
IFormatWriter
savePlane
in interface IFormatWriter
no
- the image index within the current file, starting from 0.plane
- the image plane.x
- the X coordinate of the upper-left corner of the image tile.y
- the Y coordinate of the upper-left corner of the image tile.w
- the width (in pixels) of the image tile.h
- the height (in pixels) of the image tile.FormatException
- if one of the parameters is invalid.IOException
- if there was a problem writing to the file.public void savePlane(int no, Object plane, loci.common.Region tile) throws FormatException, IOException
IFormatWriter
savePlane
in interface IFormatWriter
no
- the image index within the current file, starting from 0.plane
- the image plane.tile
- the Region representing the image tile to be read.FormatException
- if one of the parameters is invalid.IOException
- if there was a problem writing to the file.public void setSeries(int series) throws FormatException
IFormatWriter
setSeries
in interface IFormatWriter
series
- the series index, starting from 0.FormatException
- if the specified series is invalid.public int getSeries()
IFormatWriter
getSeries
in interface IFormatWriter
public void setInterleaved(boolean interleaved)
IFormatWriter
setInterleaved
in interface IFormatWriter
public boolean isInterleaved()
IFormatWriter
isInterleaved
in interface IFormatWriter
public void setValidBitsPerPixel(int bits)
IFormatWriter
setValidBitsPerPixel
in interface IFormatWriter
public boolean canDoStacks()
IFormatWriter
canDoStacks
in interface IFormatWriter
public void setMetadataRetrieve(MetadataRetrieve r)
IFormatWriter
setMetadataRetrieve
in interface IFormatWriter
public MetadataRetrieve getMetadataRetrieve()
IFormatWriter
null
metadata retrieval object.getMetadataRetrieve
in interface IFormatWriter
public void setColorModel(ColorModel cm)
IFormatWriter
setColorModel
in interface IFormatWriter
public ColorModel getColorModel()
IFormatWriter
getColorModel
in interface IFormatWriter
public void setFramesPerSecond(int rate)
IFormatWriter
setFramesPerSecond
in interface IFormatWriter
public int getFramesPerSecond()
IFormatWriter
getFramesPerSecond
in interface IFormatWriter
public String[] getCompressionTypes()
IFormatWriter
getCompressionTypes
in interface IFormatWriter
public int[] getPixelTypes()
IFormatWriter
getPixelTypes
in interface IFormatWriter
public int[] getPixelTypes(String codec)
IFormatWriter
getPixelTypes
in interface IFormatWriter
public boolean isSupportedType(int type)
IFormatWriter
isSupportedType
in interface IFormatWriter
public void setCompression(String compress) throws FormatException
IFormatWriter
setCompression
in interface IFormatWriter
FormatException
public String getCompression()
IFormatWriter
getCompression
in interface IFormatWriter
public void setWriteSequentially(boolean sequential)
IFormatWriter
setWriteSequentially
in interface IFormatWriter
public void setCodecOptions(CodecOptions options)
IFormatWriter
setCodecOptions
in interface IFormatWriter
options
- The options to set.public boolean isThisType(String name)
IFormatHandler
isThisType
in interface IFormatHandler
public String getFormat()
IFormatHandler
getFormat
in interface IFormatHandler
public String[] getSuffixes()
IFormatHandler
getSuffixes
in interface IFormatHandler
public Class<?> getNativeDataType()
IFormatHandler
IFormatReader.openPlane(int, int, int, int, int)
or IFormatWriter.savePlane(int, java.lang.Object)
.
For most readers this type will be a byte array; however, some readers
call external APIs that work with other types such as
BufferedImage
.getNativeDataType
in interface IFormatHandler
public void setId(String id) throws FormatException, IOException
IFormatHandler
setId
in interface IFormatHandler
FormatException
IOException
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
Copyright © 2017 Open Microscopy Environment