IOFormat  IOF_v0.34.0_release
Plugins

There are 2 different kinds of plugins:

  • Extractors : for data extraction from a stream or a file
  • Writers : for data encoding into a stream or a file

IOFormat is delivered with a collection of plugins (extractors and/or writers) but external plugins can also be added. All plugins present and compatible will be loaded at start-up.

Extractor plugins

Extractors are designated by a name, by a list of supported formats and by their extensions. The name of the plugin can be used in IOFormat APIs to specifically require its use if many others are available. The format can be used in IOFormat APIs to indicate the encoding of a dataset (in the case where many plugins can handle this format, IOFormat configuration will determine the plugins to apply, and their priority) for reading.

Here is the list of extractor plugins delivered with IOFormat:

Title Plugin Name Handled Formats Supported Extensions
LDM LdmPlugin LDM ldm, lda
DICOM GdcmPlugin DICOM acr, dcm, dc3, dic, dicom
ImageAccess ImAccessPlugin MRC, BMP, PGX, PPM, SUN, JPEG, JPEG2000, JPEG2000_CODESTREAM, TIFF, ECW, GATAN, JP3D, DICOM, PNG mrc, rec, ali, bmp, pgx, ppm, pgm, pbm, pnm, sun, ras, jpg, jp2, j2k, j2c, jpx, jpc, tif, tiff, ecw, dm3, dm4, jp3d, j3d, acr, dcm, dc3, dic, dicom, png
MRC MrcPlugin MRC mrc, rec, ali
PNG PngPlugin PNG png
TIFF TiffPlugin TIFF tiff, tif
JPEG TurboJpegPlugin JPEG jpeg, jpg
OpenJPEG OpenJpegPlugin JPEG2000, JPEG2000_CODESTREAM jp2, jpc, j2c, j2k
BMP EasyBmpPlugin BMP bmp
WebP WebPPlugin WEBP webp
GIF GifLibPlugin GIF gif
Amira AmiraMeshPlugin AM am
Digital Micrograph GatanPlugin DM dm3, dm4

LDM Extractor

Description

This extractor is written from native code, without third party libraries.

Input

Any uncompressed LDM files. From a file, *.dat* file location must be designated by a relative paths (no URI) in xml file. From a stream, *.dat* file location must be designated by a absolute path (URI) in xml file.

Output

LDM extractor returns a LodImageView (see IOLink user guide) which contains ImageView (with three dimensions).

Metadata

All metadata from LDM format are supported by the extractor.

Metadata path in tree Comment
DataFilename /LDM/VolumeInformation
U /LDM/VolumeInformation/Size
V /LDM/VolumeInformation/Size
W /LDM/VolumeInformation/Size
DataType /LDM/VolumeInformation
U /LDM/VolumeInformation/TileSize
V /LDM/VolumeInformation/TileSize
W /LDM/VolumeInformation/TileSize
Border /LDM/VolumeInformation
NumSignificantBits /LDM/VolumeInformation
Min /LDM/VolumeInformation
Max /LDM/VolumeInformation
N /LDM/VolumeInformation/Histogram/ItemXXXXX Number of occurences for XXXXXth item (0 to max 65536)
V /LDM/VolumeInformation/Histogram/ItemXXXXX XXXXXth range value (integer or float)

Third Party

None

DICOM Extractor

Description

Extractor based on GDCM library.

Input

Supported types:

  • UNSIGNED_INTEGER
  • SIGNED_INTEGER

Supported color space:

  • MONOCHROME1
  • MONOCHROME2
  • RGB

Dimensions:

  • 2D (images)
  • 3D (sequences)

Output

DICOM extractor returns a readable ImageView. (2 or more dimensions)

Metadata

All metadata from DICOM format supported by GDCM library are read by the extractor.

Third Party

GDCM 2.8.7 BSD License

ImageAccess Extractor

Description

ImageAccess (former Image reader library, still in use) is integrated as an extractor plugin to benefit from its large coverage of supported formats.

This plugin should only be considered as fallback since it does not support streams like other plugins.

Input

ImageAccess does not supported input streams (only paths are handled).

See ImageAccess documentation for more details.

Output

Since ImageAccess can handle multiple input formats, the extractor can return:

  • a readable MultiImageView when the read file contains more than one frame
  • a readable ImageView when the read file only contains one frame

Metadata

All metadata supported by ImageAccess library are handled by the extractor.

Third Party

ImageAccess library v1.10.3

MRC Extractor

Description

Extractor is written from native code, without third party libraries.

It is based on MRC/CCP4 2014 file format and MRC/CCP4 2000 file format specifications.

Input

See MRC Format description for MRC header definition.

MRC Extractor fulfills the whole MRC specification.

Output

MRC extractor returns a readable ImageView. (2 or 3 dimensions)

Metadata

All metadata supported by MRC format are handled by the extractor.

Metadata path in tree extension
start /MRC
sampling /MRC
cellSize /MRC
cellAngles /MRC
axisMapping /MRC
min /MRC
max /MRC
mean /MRC
origin /MRC
rms /MRC
spaceGroup /MRC
labels /MRC
extendedHeaderType /MRC
version /MRC
intCount /MRC/imod
realCount /MRC/imod
imodFlags /MRC/imod
idType /MRC/imod
lens /MRC/imod
nd1 /MRC/imod
nd2 /MRC/imod
vd1 /MRC/imod
vd2 /MRC/imod
originalTiltAngles /MRC/imod
currentTiltAngles /MRC/imod
timestamp /MRC/extended/n FEI1/2 (for each frame n)
microscopeType /MRC/extended/n FEI1/2 (for each frame n)
dNumber /MRC/extended/n FEI1/2 (for each frame n)
application /MRC/extended/n FEI1/2 (for each frame n)
applicationVersion /MRC/extended/n FEI1/2 (for each frame n)
highTension /MRC/extended/n/gun FEI1/2 (for each frame n)
dose /MRC/extended/n/gun FEI1/2 (for each frame n)
alphaTilt /MRC/extended/n/stage FEI1/2 (for each frame n)
betaTilt /MRC/extended/n/stage FEI1/2 (for each frame n)
stage /MRC/extended/n/stage FEI1/2 (for each frame n)
tiltAxisAngle /MRC/extended/n/stage FEI1/2 (for each frame n)
dualAxisRotation /MRC/extended/n/stage FEI1/2 (for each frame n)
pixelSize /MRC/extended/n/stage FEI1/2 (for each frame n)
defocus /MRC/extended/n/optics FEI1/2 (for each frame n)
stemDefocus /MRC/extended/n/optics FEI1/2 (for each frame n)
appliedDefocus /MRC/extended/n/optics FEI1/2 (for each frame n)
instrumentMode /MRC/extended/n/optics FEI1/2 (for each frame n)
projectionMode /MRC/extended/n/optics FEI1/2 (for each frame n)
objectiveLensMode /MRC/extended/n/optics FEI1/2 (for each frame n)
highMagnificationMode /MRC/extended/n/optics FEI1/2 (for each frame n)
probeMode /MRC/extended/n/optics FEI1/2 (for each frame n)
eftemOn /MRC/extended/n/optics FEI1/2 (for each frame n)
magnification /MRC/extended/n/optics FEI1/2 (for each frame n)
cameraLength /MRC/extended/n/optics FEI1/2 (for each frame n)
spotIndex /MRC/extended/n/optics FEI1/2 (for each frame n)
illuminatedArea /MRC/extended/n/optics FEI1/2 (for each frame n)
intensity /MRC/extended/n/optics FEI1/2 (for each frame n)
convergenceAngle /MRC/extended/n/optics FEI1/2 (for each frame n)
illuminationMode /MRC/extended/n/optics FEI1/2 (for each frame n)
wideConvergenceAngleRange /MRC/extended/n/optics FEI1/2 (for each frame n)
slitInserted /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
slitWidth /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
accelerationVoltageOffset /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
driftTubeVoltage /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
energyShift /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
shiftOffset /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
shift /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
integrationTime /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
binningWidth /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
binningHeight /MRC/extended/n/eftemImaging FEI1/2 (for each frame n)
cameraName /MRC/extended/n/camera FEI1/2 (for each frame n)
readoutAreaLeft /MRC/extended/n/camera FEI1/2 (for each frame n)
readoutAreaTop /MRC/extended/n/camera FEI1/2 (for each frame n)
readoutAreaRight /MRC/extended/n/camera FEI1/2 (for each frame n)
readoutAreaBottom /MRC/extended/n/camera FEI1/2 (for each frame n)
cetaNoiseReduction /MRC/extended/n/camera FEI1/2 (for each frame n)
cetaFrameSummed /MRC/extended/n/camera FEI1/2 (for each frame n)
directDetectorElectonCounting /MRC/extended/n/camera FEI1/2 (for each frame n)
directDetectorAlignFrames /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved0 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved1 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved2 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved3 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved4 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved5 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved6 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved7 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved8 /MRC/extended/n/camera FEI1/2 (for each frame n)
cameraParamReserved9 /MRC/extended/n/camera FEI1/2 (for each frame n)
phasePlate /MRC/extended/n/camera FEI1/2 (for each frame n)
stemDetectorName /MRC/extended/n/stem FEI1/2 (for each frame n)
gain /MRC/extended/n/stem FEI1/2 (for each frame n)
offset /MRC/extended/n/stem FEI1/2 (for each frame n)
stemParamReserved0 /MRC/extended/n/stem FEI1/2 (for each frame n)
stemParamReserved1 /MRC/extended/n/stem FEI1/2 (for each frame n)
stemParamReserved2 /MRC/extended/n/stem FEI1/2 (for each frame n)
stemParamReserved3 /MRC/extended/n/stem FEI1/2 (for each frame n)
stemParamReserved4 /MRC/extended/n/stem FEI1/2 (for each frame n)
dwellTime /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
frameTime /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
scanSizeLeft /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
scanSizeTop /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
scanSizeRight /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
scanSizeBottom /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
fullScanPov /MRC/extended/n/scanSettings FEI1/2 (for each frame n)
element /MRC/extended/n/edxElementMaps FEI1/2 (for each frame n)
energyIntervalLower /MRC/extended/n/edxElementMaps FEI1/2 (for each frame n)
energyIntervalHigher /MRC/extended/n/edxElementMaps FEI1/2 (for each frame n)
method /MRC/extended/n/edxElementMaps FEI1/2 (for each frame n)
isDoseFraction /MRC/extended/n/doseFractions FEI1/2 (for each frame n)
fractionNumber /MRC/extended/n/doseFractions FEI1/2 (for each frame n)
startFrame /MRC/extended/n/doseFractions FEI1/2 (for each frame n)
endFrame /MRC/extended/n/doseFractions FEI1/2 (for each frame n)
inputStackFilename /MRC/extended/n/reconstruction FEI1/2 (for each frame n)
alphaTiltMin /MRC/extended/n/reconstruction FEI1/2 (for each frame n)
alphaTiltMax /MRC/extended/n/reconstruction FEI1/2 (for each frame n)
diffractionPatternRotation /MRC/extended/n/reconstruction FEI2 (for each frame n)
imageRotation /MRC/extended/n/reconstruction FEI2 (for each frame n)
scanModeEnumeration /MRC/extended/n/reconstruction FEI2 (for each frame n)
acquisitionTimeStamp /MRC/extended/n/reconstruction FEI2 (for each frame n)
detectorCommercialName /MRC/extended/n/reconstruction FEI2 (for each frame n)
startTiltAngle /MRC/extended/n/reconstruction FEI2 (for each frame n)
endTiltAngle /MRC/extended/n/reconstruction FEI2 (for each frame n)
tiltPerImage /MRC/extended/n/reconstruction FEI2 (for each frame n)
tiltSpeed /MRC/extended/n/reconstruction FEI2 (for each frame n)
beamCenterPixel /MRC/extended/n/reconstruction FEI2 (for each frame n)
cfegFlashTimestamp /MRC/extended/n/reconstruction FEI2 (for each frame n)
phasePlatePositionIndex /MRC/extended/n/reconstruction FEI2 (for each frame n)
objectiveApertureName /MRC/extended/n/reconstruction FEI2 (for each frame n)
alphaTilt /MRC/extended/n/stage MRC2000(for each frame n)
betaTilt /MRC/extended/n/stage MRC2000(for each frame n)
stage /MRC/extended/n/stage MRC2000(for each frame n)
tiltAxisAngle /MRC/extended/n/stage MRC2000(for each frame n)
pixelSize /MRC/extended/n/stage MRC2000(for each frame n)
defocus /MRC/extended/n/optics MRC2000(for each frame n)
appliedDefocus /MRC/extended/n/optics MRC2000(for each frame n)
magnification /MRC/extended/n/optics MRC2000(for each frame n)
shift /MRC/extended/n/eftemImaging MRC2000(for each frame n)
integrationTime /MRC/extended/n/eftemImaging MRC2000(for each frame n)
binningWidth /MRC/extended/n/eftemImaging MRC2000(for each frame n)
binningHeight /MRC/extended/n/eftemImaging MRC2000(for each frame n)

Third Party

None

PNG Extractor

Description

Extractor based on libPNG library.

Input

Input stream must have seek access.

Sample bitDepth lesser than 8 bits is not supported.

Supported Color spaces:

  • PNG_COLOR_TYPE_GRAY
  • PNG_COLOR_TYPE_GRAY_ALPHA
  • PNG_COLOR_TYPE_RGB
  • PNG_COLOR_TYPE_RGBA

Paletted images (PNG_COLOR_TYPE_PALETTE) are not supported.

Output

PNG extractor returns a readable ImageView (always with 2 dimensions)

Metadata

No PNG metadata is supported yet by the extractor.

Metadata type supported
ICC Profile no
Textual information no
Textual data (tEXt) yes
Compressed textual data (zTXt) yes
International textual data (iTXt) yes
Miscellaneous information no
Additional information (EXIF) no

Third Party

libpng 1.6.35 Open Source license

TIFF Extractor

Description

Extractor based on libTIFF library.

Input

Baselines Tiff images, following the standard specification, are supported.

Some TIFF official extension are supported too:

  • Tiled images
  • Data sample format
  • YCbCr images
  • CMYK images

Only metadata from standard are handled.

Output

Since Tiff format is an image container, Tiff extractor returns :

  • a readable MultiImageView when the file contains more than one frame
  • a readable ImageView when the file only contains one frame

Metadata

TIFF baseline tags:

Metadata name description supported path tree location
NewSubfileType subfile data descriptor X /TIFF
ImageWidth image width in pixels X /TIFF
ImageLength image height in pixels X /TIFF
BitsPerSample bits per channel (sample) X /TIFF
Compression data compression technique X /TIFF
PhotometricInterpretation photometric interpretation X /TIFF
Threshholding thresholding used on data X /TIFF
CellWidth dithering matrix width X /TIFF
CellLength dithering matrix height X /TIFF
FillOrder data order within a byte X /TIFF
ImageDescription info about image X /TIFF
Make scanner manufacturer name X /TIFF
Model scanner model name/number X /TIFF
StripOffsets offsets to data strips X /TIFF
Orientation image orientation X /TIFF
SamplesPerPixel samples per pixel X /TIFF
RowsPerStrip rows per strip of data X /TIFF
StripByteCounts bytes counts for strips X /TIFF
MinSampleValue minimum sample value X /TIFF
MaxSampleValue maximum sample value X /TIFF
XResolution pixels/resolution in x X /TIFF
YResolution pixels/resolution in y X /TIFF
PlanarConfig storage ganization X /TIFF
FreeOffsets byte offset to free block X /TIFF
FreeByteCounts sizes of free blocks X /TIFF
GrayResponseUnit gray scale curve accuracy X /TIFF
GrayResponseCurve gray scale response curve X /TIFF
ResolutionUnit units of resolutions X /TIFF
Software name & release X /TIFF
DateTime creation date and time X /TIFF
Artist creator of image X /TIFF
HostComputer machine where created X /TIFF
ColorMap RGB map for palette image X /TIFF
ExtraSamples /TIFF
Copyright copyright string X /TIFF

TIFF custom tags for ThermoFisher:

Metadata name path tree location
EER_ACQUISITION_METADATA /TIFF
EER_FINAL_IMAGE_PROCESSING_METADATA /TIFF
EER_FINAL_IMAGE_METADATA /TIFF
XML_DEFECTS /TIFF

Extension tags are not supported yet.

EXIF tags are not supported yet.

Optimization

Due to Tiff format specification, in the case of a multi-frame file, retrieving the total count of frames involves to read the whole Tiff file. Depending on the input data location and the file size, this operation can last a while. Tiff reader is optimized to only count frames when requested by the user (through [frameCount] method in MultiImageView interface). You can directly request any frame without raising error, as long as this frame is present in the file.

Third Party

libTIFF 4.0.9-r2 BSD-like licence

JPEG Extractor

Description

Extractor plugin based on libjpeg-turbo library.

Input

Input stream must have seek access.

Sample bitDepth other than 8 bits is not supported.

Supported Color spaces for output:

  • JCS_GRAYSCALE
  • JCS_RGB

Output

JPEG extractor returns a readable ImageView (always with 2 dimensions)

Metadata

EXIF data are not supported yet.

Third Party

libjpeg-turbo v2.0.0-r2

OpenJPEG extractor {OpenJPEG_EXT}

This extractor read JPEG2000 files using the OpenJPEG library.

Input

This extractor needs Read and Seek support for its input.

Output

The ImageView instances returned have the Read capacity only, and are always two dimensionnal, with a IMAGE type.

Metadata

No metadata is supported yet by the extractor (EXIF...)

Third Party

OpenJPEG 2.3.1

BMP Extractor

Description

Extractor plugin based on easyBMP library.

Input

Input stream must have seek access.

Compressed files are not managed. If a BMP file has an alpha channel (i.e. 16/32bits), this channel is ignored.

Output

BMP extractor returns a readable ImageView (always with 2 dimensions)

Metadata

No metadata in the BMP format.

Third Party

easybmp v1.0.6

WEBP extractor

This extractor read WEBP files using the WEBP API library.

Input

This extractor needs Read and Seek support for its input.

Output

The ImageView instances returned have the Read capacity only, and are always two dimensionnal, with a IMAGE type.

Metadata

EXIF data are not supported yet.

Third Party

Lib Webp 1.2.0

GIF extractor

This plugin decodes GIF images following the GIF89a specification.

It currently has support for 8-bits indexed files only.

Input

This extractor needs Read support for its input.

Output

The ImageView instances returned have the Read capacity only. If the image holds only one image, it will have a two dimensionnal shape, and its image type will be IMAGE. If it holds more than one image, it image type will be IMAGE_SEQUENCE and its shape will be three dimensionnal, with the third dimension being the frame index.

Third Party

GifLib 5.2.1

AmiraMesh extractor

This plugin decodes AmiraMesh volumes or images.

This extractor is written from native code, without third party libraries.

It does not manage meshes or colormaps (1D).

Input

This extractor needs Read support for its input.

Output

The ImageView instances returned have the Read capacity only. In case of 2-dimension image, the image type will be IMAGE. Otherwise, if 3-dimension, image type will be VOLUME.

Metadata

All metadata of the format are extracted and available in ‘/Parameters’ path.

Limitations

Only 2D and 3D images are handled. ASCII data encoding is not managed (because generally used for 1D buffers)

Digital Micrograph extractor

This plugin decodes Digital Micrograph images by Gatan.

This extractor is written from native code, without third party libraries.

Input

This extractor needs Read and Seek support for its input.

Output

This extractor returns a readable MultiImageView containing the multiple frames contained in the DM file. All the frames are 2D ImageViews with the ImageType IMAGE.

Metadata

All metadata of the format are extracted and available in the "GATAN" node.

Limitations

Files with an endianess that does not match the native one are currently unsupported.

Writer plugins

As extractors, writers are designated by a name, by a list of supported formats and their extensions. The name can be used to force IOFormat to write your dataset with this specific plugin. The format will be useful in the case where your plugin can handle many different formats. And of course extension could also be used to determine the output format of your dataset.

Writers can be configured with options, which are specific to each plugin. Without configuration, default values are applied.

Here is the list of writer plugins delivered with IOFormat:

Title Plugin Name Supported Formats Output extensions
Jpeg JpegPlugin JPEG jpeg, jpg
PNG PngPlugin PNG png
MRC MrcPlugin MRC ali, rec, mrc
RAW RawPlugin RAW raw
TIFF TiffPlugin TIFF tiff, tif
JP2 OpenJpegPlugin JPEG2000 jp2
LDM LdmPlugin LDM ldm, lda

JPEG Writer

Description

Writer plugin based on libjpeg-turbo library.

Inputs

Writer accepts following kind of views as inputs:

frame ReadImageView ReadMultiImageView
2D X not supported
3D Only with a CHANNEL dimension[^1] not supported

[^1]: in properties of the ImageView, a CHANNEL dimension must exist, which means it is a planar image

Following DataTypes are supported: UINT8 or VEC3_UINT8

Image shall contain an Image interpretation (in properties) as follows:

  • GRAYSCALE
  • RGB (without ALPHA)
  • UNKNOWN (default case, datatype will determine color space according to DataType)

Metadata shall be relevant with dataset.

Features

Jpeg writer plugin support following options:

Option name description range of value Default value comment
quality quality of compression [0; 100] 90 impact the construction of the JPEG quantization tables - 100 will give a lossless result

Third Party

libjpeg-turbo v2.0.0-r2

PNG Writer

Description

Writer plugin based on libPNG library.

Inputs

Writer accepts following kinds of views as input:

frame ReadImageView ReadMultiImageView
2D X not supported
3D Only with a CHANNEL dimension[^1] not supported

[^1]: in properties of the ImageView, a CHANNEL dimension must exist, which means it is a planar image

Following DataTypes are supported: UINT8, UINT16, VECx_UINT8, VECx_UINT16

Image shall contain an Image interpretation (in properties) as follows:

  • GRAYSCALE
  • RGB (with or without ALPHA)
  • UNKNOWN (default case, datatype will determine color space automatically)

Remark:

  • in case of 3D ImageView, image is considered as 'planar', with the last dimension which contains the different channels
  • in case of MultiImageView, each frame represents a channel. Of course, frames must be correctly ordered in the MultiImageView.

Features

PNG writer plugin support following options:

Option name description range of value Default value comment
compressionlevel level of compression [0; 9] 3 The value 0 implies no compression and 9 implies maximal compression

Third Party

libpng 1.6.35 Open Source license

MRC Writer

MRC writer wrote from native code.

Inputs

Writer accepts following kinds of views as inputs:

frame ReadImageView ReadMultiImageView
2D X only with frames of same shape and datatype
3D X not supported

Following DataTypes are supported: INT8, INT16, FLOAT, UINT16

Concerning metadata, only standard metadata located in "MRC" root node will be stored

Features

MRC writer plugin does not support any option for now.

Third Party

None

RAW Writer

You can choose to store your image content without encoding, which is called RAW format (even if it is not really one). Data are written directly as they are read from memory.

Inputs

Writer accepts following kinds of views as inputs:

frame ReadImageView ReadMultiImageView
2D X only with frames of same shape and datatype
3D X only with frames of same shape and datatype
ND X not supported

Any DataTypes and dimensions are accepted.

Features

None

Third Party

None

Tiff Writer

Description

Writer plugin based on libtiff library.

Inputs

Writer accepts following kinds of views as inputs:

frame ReadImageView ReadMultiImageView
2D X X
3D X not supported
ND not supported not supported

Following DataTypes are supported: UINT8, UINT16, UINT32, UINT64, INT8, INT16, INT32, INT64, VEC3_UINT8, VEC3_UINT16, VEC3_UINT32, VEC3_UINT64

Output stream must support Seek, Read and Write.

Image shall contain an Image interpretation (in properties) as follows:

  • GRAYSCALE
  • RGB (without ALPHA)
  • UNKNOWN (default case, datatype will determine color space automatically)

Features

Tiff writer plugin support following options:

Option name description range of value Default value comment
maxNumThreads Maximum number of thread used by writer. [0; 8] 1 impact performances of writing.
maxCPUMemory Maximum CPU memory allowed to writer, in byte >=0 0 impact performances of writing. Value of 0 imply no preloading of image.
multiThreadStrategy Strategy used for multi thread writing. Value can be:
- "auto": Use heuristic based on image size and maxCPUMemory.
- "per_strip": Use one thread per strip.
- "per_frame": Use one thread per frame.
["auto", "per_strip", "per_frame"] "auto" When writing a single frame, you should use "per_strip" or "auto".

Third Party

libtiff 4.0.9

OpenJPEG Writer

Description

Writer plugin using JPEG2000 compression, based on OpenJPEG library.

Inputs

View instances accepted as input:

  • 2D ImageView instances
  • 3D ImageView instances with an ImageType of MULTISPECTRAL_IMAGE

DataTypes supported:

  • Unsigned integers, up to 32 bits (8, 16, and 32).
  • Signed integers, up to 32 bits (8, 16, and 32).
  • Vectorial variants of the ones above.

If the input image is an RGB image but does not have the RGB ImageInterpretation, some problems may occur, as OpenJPEG needs to convert to YCbCr internally, and will not do the conversion if the input color space is not specified.

Features

OpenJpeg writer plugin supports following options:

  • tileSize: the tile size to use to split the image data.
  • ratio: specifies the target compression ratio.
  • quality: specifies the target PSNR. the higher it is the higher the quality and the image size is. The special value 0 indicates lossless compression.

Output images are always tiled, even if you do not use the associated option, the default tiling size being 1024. By default the image is compressed using a lossless algorithm.

The ratio and quality options are mutually exclusive, activating one will deactivate the other.

Third Party

OpenJPEG 2.3.1

LDM Writer

Description

Writer plugin for LDM format.

Inputs

View instances accepted as input:

  • 2D ImageView instances
  • 3D ImageView instances
  • MultiImageView instances containing 2D frames only which can be stacked
  • LodImageView instances (but only the high-resolution image is used)

DataTypes supported:

  • Unsigned and signed integers, up to 32 bits
  • Float
  • Double

According to DataType support, only grayscale images are supported.

Features

LDM writer plugin supports following options:

  • tileSize: the tile size to use to split the image data (a 3-integer-value). Will impact the resolution level count.
  • compressor: the compression mode can be chosen by an empty string for 'no compression' mode and "GzipDataCompressor" for the Gzip compression.
  • compressionLevel: integer value to indicate the level of compression (if compressor) is not set to 'no compression'. Default value is 1.
  • histogram: integer value to indicate if histogram must be generated (1) or not (0).

compressionLevel option is only used if compressor option is set to "GzipDataCompressor". histogram option is only available for non-float datasets for now.

Min and Max values in header file are computed from input dataset.

Limitations

Borders are not supported.

Third Party

None