Version history

6.4.0 (2020 March)

File format fixes and improvements:

  • Applied Precision CellWorX
    • added support for multiple Z sections
  • DeltaVision
    • added and updated objective metadata based on values from softWoRx 7.2.0 (thanks to David Pinto)
  • Hamamatsu NDPI
    • added support for JPEG-XR compression
    • added full support for files larger than 4 GB
    • improved support for a number of additional metadata tags
    • the Hamamatsu NDPI reader improvements are provided via work from Glencoe Software Inc.
  • InCell
    • inverted Y coordinate in plane/field positions to correct stitching of tiles
  • PerkinElmer Vectra QPTIFF
    • plane position values will now be populated on OME-XML
  • TIFF
    • values for XPosition and YPosition in original metadata will now be more accurately stored as doubles
    • implemented a fix to prevent integer overflow when reading from a large tile greater than 2 GB
  • Ventana BIF
    • improved handling of physical sizes for pre-stitched TIFFs
  • Zeiss CZI
    • added a fix for uncompressed pixels incorrectly flagged as JPEG-XR
    • fixed a bug so that line-scans are now read correctly (thanks to Stephan Wagner-Conrad)
    • improved parsing of detector metadata

Bio-Formats tools improvements:

  • added a new nobigtiff option to bfconvert to disable automatic switching to BigTiff based upon the number of pixel bytes (TIFF files larger than 4GB). This may be useful when converting using a compression codec so that the output file size is less than 4GB
  • fixed a bug in xmlvalid tool to properly handle lowercasing of file names
  • added new bfGetPlaneAtZCT function to MATLAB toolbox to retrieve a particular plane at a ZCT coordinate (thanks to Mark Kittisopikul)
  • added a new bfTestInRange helper function to MATLAB toolbox with improved performance and error handling (thanks to Mark Kittisopikul)
  • fixed a bug when using bfconvert on multi-series files with only a single timepoint, channel or Z slice selected

Bio-Formats API updates:

  • version of jxrlib has been updated to 0.2.2
  • version of ome-codecs has been updated to 0.3.0 which includes performance upgrades for LZW compression (thanks to Alexander Popiel)
  • moved JPEG-XR codec and service from formats-gpl to formats-bsd component
  • TiffParser and TiffSaver have now been updated to implement Closeable
  • added a documentation note to use one IFD instance per plane with saveBytes in TiffWriter
  • FormatWriter will now create output file’s parent directory if needed
  • FakeReader now allows for DeltaT to be set in INI file
  • FakeReader now handles INI files in plates created by mkfake
  • fixed a number of deprecation warnings in various readers

6.3.1 (2019 December)

File format fixes and improvements:

  • ICS (Image Cytometry Standard)
    • prevented a potential error when writing ICS files with physical units which could not be converted
  • Imspector OBF
    • fixed a bug with incorrect dimensions being parsed for some Imspector OBF files
  • Leica LAS AF LIF (Leica Image File Format)
    • fixed a NullPointerException in some variants of the LIF file format
  • TIFF
    • improved the performance of tiled writing
  • Zeiss CZI
    • fixed issues with tile stitching and position size

Bio-Formats tools improvements:

  • fixed a potential NullPointerException in SpringUtilities for Bio-Formats plugins (thanks to July Chen)
  • updated URL for fetching ImageJ upgrades in ijview
  • fixed the XY coordinates for cropped images in bfconvert
  • fixed a bug when using a cropped multi-series file in bfconvert (thanks to Matthieu Moisse)
  • fixed issues in bfconvert when writing separate tiles with additional options
  • added documentation of tile output patterns to utility help in bfconvert

6.3.0 (2019 October)

File format fixes and improvements:

  • Big Data Viewer
    • added support for parsing of physical sizes
  • DeltaVision
    • added a new RCPNL reader which is a variant and split out of the DeltaVision format
  • Hamamatsu NDPI
    • fixed population of the nominal magnification from the SourceLens TIFF tag
  • ICS (Image Cytometry Standard)
    • fixed a bug when using tiles to read files from SVI-Huygens
  • Imspector OBF
    • fixed an IndexOutOfBoundsException exception when using DummyMetadata (thanks to Nils Gladitz)
  • JPEG 2000
    • added support for sub-resolutions
  • Leica LIF
    • updated to parse attachments to determine if XY positions should be flipped or swapped
  • MetaMorph
    • improved file name construction and plate detection logic
  • Nikon ND2
    • updated to use floating point for 32 bit values
  • OME-TIFF
    • reduced memory usage when reading files and memo file size for cached files
  • PerkinElmer Operetta
    • improved handling of empty fields to prevent series from having X or Y set to 0

API updates:

  • added overwriteIFDValue signature that takes an IFD offset to TiffSaver
  • added a new getRequiredDirectories method to FormatTools
  • new FakeReader keys added for sleepOpenBytes and sleepInitFile

Build updates:

  • updated deployment mechanism for SNAPSHOT and Release to use Travis CI
  • increased the strictness of AcquisitionDate checks in FormatReaderTest
  • improved test coverage of companion file datasets

Component updates:

  • ome-common was upgraded to 6.0.4
  • updated DateTools to attempt to parse invalid dates with Locale.US
  • DateTools documentation updated to clarify expected units for timestamp passed to convertDate

Documentation improvements:

  • added documentation for sleep options when generating test images
  • fixed broken external links in documentation
  • corrected suffixes used for JPEG 2000

6.2.1 (2019 August)

File format fixes and improvements:

  • Applied Precision CellWorX
    • corrected plane positions for series index > 0 rather than reusing positions from the first series
  • DeltaVision
    • added objective info for new Applied Precision 100X/1.4 lensID
    • updated so that date from dv file will override log file date to avoid locale-dependent dates
  • Leica LAS AF LIF (Leica Image File Format)
    • fixed units and indexing for tile-based plane positions
  • TIFF
    • fixed a potential exception in MinimalTiffReader when the TIFF is stored using very large tile/strip dimensions
  • Zeiss CZI
    • fixed a potential index out of bounds exception when populating positions

Bug fixes and improvements:

  • bfconvert has been updated so that when the dimensions of a sub-resolution are smaller than the requested tile size then they default to the size of the sub-resolution
  • fixed a bug in the execution of bfsave in the GNU Octave environment

Codec updates:

  • ome-codecs was upgraded to 0.2.5
  • JPEG codec updated to reduce decompression time for 8-bit RGB images
  • Huffman codec updated to allow the decoding tree to go all the way down to the 16-bit depth required by the standard (thanks to Aaron Avery)
  • Lossless JPEG codec updated to provide better compliance with the LJPEG standard (thanks to Aaron Avery)

Documentation improvements:

6.2.0 (2019 July)

New file formats:

  • Mikroscan TIFF
    • a new reader for Mikroscan TIFF files has been contributed with thanks to Jim Crowe, Mikroscan Technologies, Inc.
  • Ventana BIF
    • added a new reader for Ventana BIF files which has been commissioned via Glencoe Software

File format fixes and improvements:

  • Cellomics
    • fixed indexing for plates with a single well or missing fields
  • DeltaVision
    • added support for the reading of the new panel count field (provided through a collaboration between GE Healthcare and Glencoe Software Inc.)
  • PerkinElmer Operetta
    • images with smaller XY dimensions than all other TIFF files in dataset will now be padded
  • TIFF
    • updated functionality for overwriting IFD values to ensure that previous value is completely overwritten and no orphaned tags are left
  • Zeiss CZI
    • expanded support for auto-stitching of tiles

Bug fixes and improvements:

  • added -cache, -cache-dir and -no-sas options to bfconvert tool
  • deprecated broken TRUNK and DAILY builds from upgrade checker
  • disabled Oracle JDK from Travis CI checks

Documentation improvements:

  • fixed broken link for discontinued Dcraw software
  • updated links for Zeiss formats

6.1.1 (2019 June)

File format fixes and improvements:

  • DeltaVision
    • added new lens definitions associated with rcpnl files
  • Gatan Digital Micrograph (DM3/DM4)
    • now parsing the Montage tag to determine if tiles are present
  • Leica LAS AF LIF (Leica Image File Format)
    • added fix to correctly read scale from polygon regions of interest (thanks to Sean Warren)
  • PerkinElmer Columbus
    • improved handling of truncated TIFF files to return blank planes
  • PerkinElmer Opera Flex
    • plate barcodes are now used to improve grouping and handling of truncated files
  • TIFF (Tagged Image File Format)
    • improved parsing times for images stored as uncompressed contiguous strips
  • Zeiss CZI
    • improved plane position metadata for many CZI datasets

Automated test changes:

  • format reader tests have been updated to handle PerkinElmer Columbus datasets with flex files

Documentation improvements:

  • added help for missing options in bfconvert command line tool

6.1.0 (2019 May)

New file formats:

  • BDV
    • added a new reader for Big Data Viewer files

File format fixes and improvements:

  • Applied Precision CellWorX
    • improved handling of thumbnail files
  • DeltaVision
    • updated handling of rcpnl files to treat each file as a single timepoint
  • FakeReader
    • removed header key from original metadata
  • Hamamatsu VMS
    • removed header key from original metadata
  • Hitachi S-4800
    • removed header key from original metadata
  • ICS (Image Cytometry Standard)
    • fixed an issue reading .ics/.ids files written by SVI Huygens (thanks to Jan Eglinger)
  • Imaris IMS
    • fixed issues with newer files which had been failing due to older netcdf version
  • JPEG
    • improved the reading of EXIF data
  • Lambert Instruments FLIM
    • added support for packed UINT12 datatype (thanks to Johan Herz)
  • LEO
    • fixed a bug with the parsing of physical sizes
    • improved support for additional global metadata fields
  • Olympus OIR
    • fixed a bug which would show empty pixels when more than 1000 timepoints

Automated test changes:

  • added additional tests for HCS/SPW datasets to ensure Plate, PlateAcquisition, Well, WellSample, and WellSample position values are configured where present
  • added a new file-leak-detector test to flag potential memory leaks

Bio-Formats API changes:

  • ImageConverter as used in bfconvert command line tool is now public
  • made ImageReader more defensive against exceptions thrown when determining reader type
  • fixed an issue when performing a non-sequential write for multi-resolution TIFF files

Component changes:

  • ome-common was upgraded to 6.0.3
  • perf4j was upgraded to 0.9.16
  • removed Guava dependency which will be pulled transitively from the upstream ome-common dependency
  • jhdf5 was upgraded to 14.12.6
  • metadata-extractor was upgraded to 2.11.0
  • xercesImpl version 2.8.1 was added as it is no longer a dependency of metadata-extractor
  • netcdf was upgraded to 4.6.13

6.0.1 (2019 March)

File format fixes and improvements:

  • cellSens VSI
    • improved tag parsing resulting in fixes for missing or incorrect metadata
  • Hamamatsu ndpi
    • improved handling of variants where a constituent NDPI has no wavelength
  • LaVision Imspector
    • fixed a potential NullPointerException when ‘xyz-Table Z Resolution’ is false
  • NRRD (Nearly Raw Raster Data)
    • added support for raw GZIP-compressed data files
  • Olympus OIR
    • fix to ensure file path is normalized which fixes detection on Windows
  • TIFF
    • improved handling of direct tile copying to prevent invalid images
    • improved handling of tiles in scenarios of an invalid offset or byte count of 0
Documentation improvements:
  • added documentation for -noflat option to the showinf and bfconvert users pages
  • updated recommended minimal MATLAB version to R2017b
  • documented support for MATLAB versions prior to R2017b
  • links to MicroCT public datasets now point to the public archive rather than directly to the zip file

6.0.0 (2019 February)

Bio-Formats API changes:

  • Java 8 is now the minimum supported version

  • Sub-resolution reading:

    • added MetadataList and CoreMetadataList classes
    • added a new SubResolutionFormatReader abstract class for handling pyramidal format readers
    • updated all pyramid format readers to use SubResolutionFormatReader
    • deprecated getCoreMetadataList, seriesToCoreIndex, coreIndexToSeries, getCoreIndex and setCoreIndex in IFormatWriter
  • Added a new IPyramidHandler interface with the resolution getter methods

  • Sub-resolution writing changes:

    • IFormatWriter now extends IPyramidHandler (breaking)
    • added setResolutions and getResolutions methods to IFormatWriter (breaking)
    • added examples of using the sub-resolution writing API
  • Tiled writing API changes:

    • updated IFormatWriter to use setTileSizeX(0) and setTileSizeY(0) as a way to disable tiling (breaking)
    • updated FormatWriter set 0 as the default values of getTileSizeX() and getTileSizeY (breaking)
  • IFormatWriter.getCompressionTypes now returns the types for the selected writer only

  • Metadata handling:

    • added getter methods to MetadataTools for retrieving OME enumerations by value
    • deprecated OME enumeration getter methods in FormatReader
  • Refactor FilePatternReader logic in a new WrappedReader abstract class

New file formats:

  • KLB

    • added a new reader for Keller Lab Block (KLB) files
  • CV7000

    • added a new reader for Yokogawa CV7000 datasets
  • GE MicroCT

    • added a new reader for GE MicroCT datasets

File format fixes and improvements:

  • Aperio SVS/AFI

    • removed pyramidal resolutions of mismatching pixel types
    • fixed exposure times, improved image naming of AFI datasets
    • displayed original metadata keys for each channel of AFI datasets
    • added support for multiple Z sections
  • DICOM

    • improved file grouping and file-to-series mapping for multi-file datasets
  • Fake

    • added support for multi-resolution test images
    • now populating WellSample positions when present using Plane data
  • Gatan Digital Micrograph

    • adjusted endianness and record byte count for long values
    • allowed ROIs to be stored in DocumentObjectList groups
    • no longer creating an empty ROI when an unsupported shape type is encountered
  • Image Pro

    • added support for Image Pro Plus .ips set
  • GE InCell

    • added support for parsing minimum and maximum pixel values
  • Lambert Instruments FLIM

    • fixed an integer overflow error with large files (thanks to Rolf Harkes)
  • Leica LIF

    • unified metadata parsing to use DataTools.parseDouble
  • Leica SCN

    • improved support for Versa datasets
  • Micro-Manager

    • improved handling of very large *_metadata.txt files
    • prevented NumberFormatException for invalid double values
    • add support for parsing ChannelColor from *_metadata.txt files
  • Metamorph

    • added support for multi-dimensional .scan dataset created from Scan Slide (thanks to Jeremy Muhlich)
  • MRC (Medical Research Council)

    • fixed endian detection for old-style headers
  • Nikon ND2

    • prevented integer overflow when reading chunkmaps from files larger than 2GB
    • fixed handling of duplicate and incomplete exposure time lists
    • fixed chunk map handling when CustomData blocks are between ImageDataSeqs
  • OME-TIFF

    • added support for reading OME-TIFF with pyramidal resolutions stored as SubIFDs
    • added support for writing OME-TIFF with pyramidal resolutions
    • added support for companion OME-TIFF filesets where TIFF does not link back to the metadata file
    • improved handling of missing planes in TiffData
  • PerkinElmer Operetta

    • improved support to handle datasets generated by the Harmony software
  • TIFF

    • split IFDs into separate series if the dimensions or pixel type mismatch
    • restricted use case for legacy TIFF JAI reader
    • fixed a bug with FillOrder which resulted in 0 pixel values
  • Zeiss CZI

    • reduced duplicate original metadata when reading a pyramid file
  • Zeiss TIFF

    • added support for AVI files acquired with Keyence software
  • Zeiss ZVI

    • reuse stream for sequential calls to openBytes on the same plane
  • updated all pyramidal format readers to consume SubResolutionReader

  • updated all readers to consume MetadataTools getter to retrieve enumerations

  • reviewed all readers and plugins to close open instances of RandomAccessInputStream

  • fixed some deprecation warnings in a number of readers

  • for RGB images using ChannelSeparator all channel metadata is now copied instead of just names

ImageJ plugin improvements:

  • updated the updater message in the Fiji plugin (thanks to Jan Eglinger)
  • disabled LUT writing for any plane that has a default grayscale lookup table
  • added macro option to always skip LUT writing

MATLAB toolbox improvements:

  • improved performance of bfGetPlane by removing an unnecessary data copy (thanks to Cris Luengo)

Command-line tools improvements:

  • bfconvert utility

    • added -no-flat option to the command-line tools to convert files with sub-resolutions
    • added -pyramid-scale and -pyramid-resolutions options to generate sub-resolutions during conversion
    • removed Plate elements when -series is passed as an option
    • extended usage to describe available formats, extensions and compressions
  • xmlvalid utility

    • added new validate methods to loci.formats.tools.XMLValidate returning the validation status
    • added a return code to xmlvalid

Component changes:

  • ome-common was upgraded to 6.0.0
  • ome-codecs was upgraded to 0.2.3
  • ome-model was upgraded to 6.0.0

Automated test changes:

  • added testng.allow-missing property allowing to skip unconfigured filesets
  • added testUnflattenedSaneOMEXML to compare series count to OME-XML images count when resolution flattening is disabled
  • added test-equivalent target to compare pixel data between two files
  • added support for storing resolution index and resolution count in the configuration files used for automated testing
  • tests now fail when a configured file throws UnknownFormatException

Documentation improvements:

  • fixed the xmlvalid documentation page (thanks to Kouichi C. Nakamura)
  • improved the memory section of the MATLAB documentation page (thanks to Kouichi C. Nakamura)
  • extended IFormatReader Javadocs to reflect the reader guide
  • added reference to current Adobe TIFF specification
  • switched to image.sc as the reference location for public feedback

5.9.2 (2018 September 03)

File format fixes and improvements:

  • AVI
    • added support for AVI files acquired with Keyence software
  • Gatan
    • fixed a bug when reading a file with an empty tag of type 23
  • Deltavision
    • extended the objective metadata support (thanks to David Pinto)
  • MRC
    • fixed the reading of MRC files generated with FEI EPU software
  • Zeiss LSM
    • improved the channel color detection for SIM data

Component changes:

All OME dependencies were upgraded mostly with build changes and documentation improvements:

  • ome-common was upgraded from 5.3.2 to 5.3.6
  • ome-poi was upgraded from 5.3.1 to 5.3.3
  • ome-mdbtools was upgraded from 5.3.1 to 5.3.3
  • ome-jai was upgraded from 0.1.0 to 0.1.3
  • ome-codecs was upgraded from 0.2.0 to 0.2.2
  • ome-stubs was upgraded from 5.3.0 to 5.3.2
  • ome-model was upgraded from 5.5.4 to 5.6.3

Documentation improvements:

  • added links to public sample files for Imaris IMS, DICOM, Leica-SCN, LEO, MRC, PNG, TIFF and Trestle formats

5.9.1 (2018 August 14)

File format fixes and improvements:

  • Olympus OIR
    • fixed a bug to prevent incorrect files from being read when multiple datasets are in the same location
  • LEO
    • updated parsing of metadata values for image pixel size, working distance, filament, EHT and date (thanks to David Mankus)
  • DeltaVision
    • reader can now detect up to 12 channels
  • Micro-Manager
    • now logs a warning when an image is acquired with an unsupported version

Documentation improvements:

  • added QuPath to the list of visualization and analysis applications
  • updated the link to the i3dcore library
  • updated the link to Slidebook
  • improved MATLAB documentation with information on Java heap memory preferences (thanks to Kouichi C. Nakamura)
  • corrected a number of permanently redirected URLs in the component and format pages

5.9.0 (2018 July 3)

File format fixes and improvements:

  • MetaMorph
    • fixed a NullPointerException when a stage label is not present
    • ensured that reported domain is now consistent with the existence of a Plate in OME-XML
    • fixed Metamorph RGB series channel count (thanks to Jeremy Muhlich)
  • Leica LIF
    • improved handling of dimension order for non-RGB channels
  • Imspector OBF
    • added support for FLIM datasets
  • Inveon
    • updated to attempt to locate renamed data files
  • Volocity
    • expanded image names to include the stack parent names
  • Olympus OIR
    • added a fix for slow tag reading and a potential infinite loop
  • TIFF
    • added support in TiffWriter for the writing of DEFLATE (zlib) compression
    • deprecated getIFDs() in TiffParser and added getMainIFDs() and getSubIFDs()
  • Zeiss CZI
    • fixed an issue with big images when tiling is present but a pyramid is not
  • Nikon NIS-Elements ND2
    • prevented integer overflow exception when reading a tile from a large image
  • Amersham Biosciences Gel
    • prevented overflow issue when reading unsigned integer values
  • Cellomics
    • fixed indexing when the field counts are variable
  • Trestle
    • updated to ensure consistent ordering of used files

Bug fixes and improvements:

  • enabled building and testing with Java 9 and 10
  • added CI testing with Java 10 on AppVeyor and Travis
  • removed Java 7 from Appveyor matrix
  • updated a number of Maven plugins to current versions
  • corrected warnings in Maven configuration in sub-components
  • added a warning to clarify the behavior when passing metadata with dimensionOrder in bfsave as part of the Bio-Formats MATLAB toolbox (thanks to Jonathan Armond)
  • improved robustness in the detection of patterns as part of the file stitching
  • fixed a bug relating to dimension order in the Bio-Formats plugins Exporter
  • fixed download URLs in Bio-Formats command-line tools
  • updated use of static final to match Oracle’s recommendations and convention
  • disabled upgrade checker when running unit tests
  • added support to data repo test suite for unconfigured tests

Documentation improvements:

  • fixed unstable links flagged by automated link checking
  • begun adding testing for breakages to memo files
  • clarified ordering expectation in getUsedFiles Javadocs
  • added documentation for dimensionOrder in bfsave with the MATLAB toolbox
  • fixed broken links in previous release notes
  • expanded documentation for command-line tools to cover undocumented options and environment variables
  • added a new license/copyright section to the About Bio-Formats page
  • updated the public format page for the Vectra QPTIFF format

5.8.2 (2018 April 23)

File format fixes and improvements:

  • JPEG
    • large images with no restart markers now revert to using DefaultJPEGReader for improved decoding
  • Micro-Manager
    • when available PositionName will be parsed and used as the image name
  • Hamamatsu ndpi
    • updated image names to be more meaningful when resolutions are not flattened
  • InCell 2000/6000
    • fixed an IllegalArgumentException and improved well and field indexing
  • AVI
    • fixed a bug with padding for RGB images
  • NIfTI
    • the nDimensions field is now used to read additional dimensions when size is greater than 4
  • PerkinElmer Opera Flex
    • fixed a bug which resulted in an incorrect field count
  • Zeiss CZI
    • improved handling of files with no extension

Bug fixes and improvements:

  • an error message is now logged by ImageReader when finding a reader for an empty file
  • added a new protected helper method to Memoizer to check if a directory is writable
  • improved the rounding of PlanePosition values for data repo configuration testing
  • prevented a null pointer exception when retrieving plane exposure time using Bio-Formats ImageJ macro extensions
  • updated MinMaxCalculator to account for unflattened multi resolution images

Documentation improvements:

5.8.1 (2018 March 22)

File format fixes and improvements:

  • TIFF
    • updated TiffWriter so that planes will no longer be split when using non-standard SamplesPerPixel e.g. images with 2 or 4 samples per pixel. This will ensure the TiffData elements represent the structure specified by the user. If users wish to split planes the ChannelSeparator and bfconvert provide the means to do this explicitly
    • updated TiffWriter to use the correct logic for index checking when writing tiled images
    • fixed a ClassCastException when the NEW_SUBFILE_TYPE tag has a non-standard type or count such that the value is not inlined
    • updated to also check the last IFD for an ImageJ comment in the scenario that the image has been processed by other software
  • NRRD (Nearly Raw Raster Data)
    • added support for space directions and space units fields added in version 4
  • Evotec/PerkinElmer Opera Flex
    • updated to read rather than calculate image offsets when a single tile is used

Bug fixes and improvements:

  • limited the number of exceptions in the Bio-Formats plugins exporter when an unsupported pixel type is found
  • fake test images now allow for per-plane ExposureTime{X,Y,Z} and Position{X,Y,Z} keys in the INI file (for further details see the documentation for Generating test images)
  • file patterns now have expanded support for multi-channel pyramids, allowing for the matching of at least two channels rather than three, and the stitching of files containing a pyramid has also been fixed

Documentation improvements:

  • improved testing of external links

5.8.0 (2018 February 21)

New file formats:

  • Ionpath MIBI
    • added a new reader to support the reading of Ionpath Multiplexed Ion Beam Imaging (MIBI) files (thanks to Rachel Finck)
  • PerkinElmer Vectra QPTIFF
    • added support for PerkinElmer Vectra QPTIFF files (The QPTIFF Bio-Formats reader is provided through a collaboration between PerkinElmer, Inc and Glencoe Software Inc.)

File format fixes and improvements:

  • cellSens VSI
    • added support for lossless JPEG compression
  • Imspector OBF
    • improved the parsing of OBF files with embedded OME-XML metadata (thanks to Bjoern Thiel)
  • Leica LIF
    • companion metadata files are now attached if present
  • Micro-Manager
    • fixed a bug related to the parsing of the metadata closing block
  • NRRD (Nearly Raw Raster Data)
    • added support for GZIP pixel stream contained within a .nrrd file
  • Olympus OIR
    • added support for multi-file datasets
  • OME-TIFF
    • when files are ungrouped the dimensions are corrected by checking the indexes for each associated TiffData
  • PerkinElmer Operetta
    • added support for additional metadata fields such as Instrument, Wavelength and Exposure time
  • TIFF
    • fixed a bug when printing IFD values of type OnDemandLongArray
    • fixed a bug when writing tile sizes for multi-series images
  • Zeiss CZI
    • when Z positions are not enumerated then values are calculated from a Z step
    • metadata for DisplaySetting will now be preserved in the original metadata table

Bug fixes and improvements:

  • removed unused ScreenReader in preparation for migrating it to be an external reader
  • fixed a bug with the generation of thumbnails in Bio-Formats plugins
  • updated the Maven POM to unify component version property names
  • tile size is now reported in the core metadata when using the showinf tool
  • added setFilePatternIds to ImporterOptions for use with Bio-Formats plugins
  • improved the precision of format identification for MRC, I2I, and Zeiss LSM

Documentation improvements:

  • fixed and updated a number of external documentation links
  • added links to public NRRD samples

5.7.3 (2018 January 11)

File format fixes and improvements:

  • TIFF
    • fixed a NullPointerException when reading a TIFF file from the root system directory
    • improved support for large images that are stored as a single uncompressed tile with multiple interleaved channels
  • MRC (Medical Research Council)
    • added support in original metadata for the fields ISPG and Is data cube
  • TillPhotonics TillVision
    • directory listings for .pst files are now sorted
  • MetaMorph
    • directory listings are now sorted during file initialization
  • Amira Mesh
    • now supports Avizo in the file header in addition to the existing support for AmiraMesh
  • Becker & Hickl SPCImage
    • added a fix for IllegalArgumentException when reading files with compressed data
  • Zeiss CZI
    • fixed an IndexOutOfBoundsException when creating ROI objects

Bug fixes and improvements:

  • removed unused target utils-formats-api from ant build
  • automated Memoizer tests updated to use UUID for generating unique memo file directories
  • detect and fix Findbugs’ SBSC_USE_STRINGBUFFER_CONCATENATION using StringBuilder
  • configuration files for the automated test suite now use raw physical size rather than formatted size
  • added first version of Dockerfile for running the automated test suite standalone

Documentation improvements:

  • added a support page to the Bio-Formats project
  • updated reference URLs for the Aperio ImageScope and Micro-Manager
  • documented issues with conflicts in the JAI ImageIO component
  • clarified the default values of HCS keys for fake images in the documentation for Generating test images
  • corrected external links which failed automatic link checking

5.7.2 (2017 November 21)

File format fixes and improvements:

  • Nikon ND2 - fixed a bug which would use the incorrect channel count for small-sized single channel images
  • MetaMorph TIFF
    • changed the reader’s behaviour to populate exposure times for all planes when only a single exposure time is defined
  • DeltaVision
    • improved parsing of the associated log files to add additional key value pairs to global metadata
  • EPS (Encapsulated PostScript)
    • fixed an exception when reading pixel data in cases with embedded TIFF
  • GIF
    • fixed a bug to display the correct data when reading planes out of order

Bug fixes and improvements:

  • fixed failures with Ant build from a clean Maven repository by updating Maven repositories to use HTTPS rather than HTTP
  • now using safe version checking for Bio-Formats plugins to prevent a bug with Java 9
  • updated the JPEG-XR codec to allow either interleaved or non-interleaved data to be returned

Documentation improvements:

  • added clarification regarding Bio-Formats version requirements for using Java 7 or above
  • updated download links to latest Bio-Formats release version
  • updated the link to the most active fork of JAI ImageIO
  • fixed a number of external broken links
  • added a Trello link for contributing external developers
  • added a link to the page Adding format/reader documentation pages to help those contributing to the documentation or supported formats pages
  • the Bio-Rad Gel page has been updated to add a link to biorad1sc_reader, an external python implementation (thanks to Matthew Clapp)

5.7.1 (2017 September 20)

File format fixes and improvements:

  • Nikon NIS-Elements ND2
    • improved parsing of Z position values
  • LaVision Imspector
    • corrected the value of time per FLIM channel
    • fixed a bug which saw the Z and T dimensions swapped
    • fixed a divide by zero exception
    • added a fix for incorrect time-base and number of channels
  • TIFF
    • added support for handling files with a FillOrder of 2 in which the bits in each byte are reversed
    • improved support for multi-channel ImageJ TIFF files greater than 4GB in size

Performance improvements:

  • improved TIFF performance by using non-regexp String replacement (thanks to Thushara Wijeratna)
  • improved TIFF handling of Strings for large metadata (thanks to T. Alexander Popiel)

Documentation improvements:

  • updated documentation to reference support for ImageJ TIFFs
  • added links to format options page to user and developer index pages

5.7.0 (2017 September 4)

File format fixes and improvements:

  • Imaris HDF
    • fixed resolution problems in which dimensions and resolution order were incorrectly calculated (thanks to Eliana Andreica)
  • Nikon NIS-Elements ND2
    • fixed a bug in offset calculation when native chunk map is being used
  • MetaMorph
    • corrected delta T and position Z values for multi-channel images when channels are split across multiple files
  • Amnis FlowSight
    • better handling of exceptions in isThisType method (thanks to Claire McQuin)
  • PicoQuant Bin
    • better handling of exceptions in isThisType method (thanks to Claire McQuin)

Bug fixes and improvements:

  • reviewed and corrected URLs throughout the Bio-Formats source code
  • updated Bio-Formats Macro Extensions list with a missing function
  • added a new option in Bio-Formats plugins to configure the slice label display using patterns

Documentation improvements:

5.6.0 (2017 August 14)

File format fixes and improvements:

  • Zeiss CZI
    • added support for images from Elyra PALM system
    • prevented a potential infinite loop when a scene with a pyramid is missing
  • cellSens VSI
    • a new option has been added to throw an exception rather than logging a warning if .ets file is missing. The option, cellsens.fail_on_missing_ets, can be used via the MetadataOptions API, as a parameter in the command line tools or via the Bio-Formats configuration dialog in ImageJ
  • MetaMorph Stack (STK)
    • fixed an error with HCS style datasets always returning the first plane regardless of the requested index
    • updated to use stage labels starting with Scan to detect when a whole plate is saved in a single .stk file
    • fixed a bug for ArrayIndexOutOfBoundsException when an image contains a single Z plane
  • Gatan Digital Micrograph
    • added support for Z stacks and ROIs
    • fixed several bugs in tag parsing
  • PerkinElmer Operetta
    • ensure TIFF files exist before reading
  • JPEG
    • support added for images with more than Integer.MAX_VALUE pixels

Bug fixes and improvements:

  • JPEGTileDecoder
    • class now implements AutoCloseable to prevent resource leaks
  • Bio-Formats Plugin
    • improved performance when using options to concatenate multiple series together
  • TiffSaver
    • made performance improvements to prevent the writing of a new IFD for each tile, resulting in significant file size reductions for images with a large quantity of tiles

Documentation improvements:

  • updated website and URL links for new OME Website website
  • added missing Andor SIF to supported formats page
  • added a new page Working with whole slide images outlining the API support for pyramids/resolutions
  • fixed broken documentation links for external resources which are no longer available
  • updated the style of Sphinx documentation

Component architecture changes/decoupling:

  • decoupled image encoding and decoding routines to the new ome/ome-codecs GitHub repository and consumed as ‘org.openmicroscopy:ome-codecs’ artifact from Maven Central
  • removed components/forks/jai - decoupled to the new ome/ome-jai GitHub repository and consumed as part of ‘org.openmicroscopy:ome-jai’ artifact from Maven Central
  • replaced components/formats-api/codecs classes with wrappers around ‘org.openmicroscopy:ome-codecs’
  • replaced components/formats-bsd/codecs classes with wrappers around ‘org.openmicroscopy:ome-codecs’

Updated build system:

  • ant now removes the build files of the bundles during ‘clean’ to prevent a mix of dependencies

5.5.3 (2017 July 5)

File format fixes and improvements:

  • Zeiss CZI
    • fix to store Bézier ROIs as polygons, using the control points for the set of Bézier curves to form an approximation of the ROI
    • improved parsing of stage positions in metadata
    • improved parsing of detector gain values
    • removed OME-XML validation errors by fixing potential for duplicate detector IDs
    • removed invalid XML failures for Modulo label elements
    • time increment metadata now populated on Pixels element
    • fix to deal with consecutive empty planes in a series (thanks to Nicholas Trahearn)
  • DICOM
    • no longer allow core metadata to be modified when determining if files belong to a DICOM dataset
  • Nikon NIS-Elements ND2
    • fixed calculation for scanline padding
  • Kodak BIP
    • stricter file type checking enforced by no longer relying only on the file suffix
  • MINC MRI
    • improved parsing of metadata by correcting units for physical sizes, pixel type and capturing XYZ plane positions in OME-XML
  • Bio-Rad Gel
    • fixed the width of pixel data offset field
  • DeltaVision
    • improved accuracy of format detection checking for input streams
  • Andor SIF
    • fixed support for cropped images by parsing bounding box of the stored image

Documentation improvements:

  • Olympus cellSens VSI updated to include list of available specifications

5.5.2 (2017 June 15)

File format fixes and improvements:

  • Olympus FluoView FV1000
    • fix for java.lang.ArrayIndexOutOfBoundsException caused by filter names of “—” (thanks to Stefan Helfrich)
    • refactored channel metadata population and increased usage of DataTools utility functions
  • Zeiss CZI
    • fixed detection of Z line scans that caused incorrect dimensions in certain filesets
    • improved exception handling of truncated/invalid files
  • Veeco AFM
    • fixed reading of tiled images
  • Hamamatsu ndpi
    • prevented potential memory leak by ensuring all TiffParser streams are closed

Bug fixes:

  • OMEXMLServiceImpl
    • improved exception handling to deal with potential java.lang.NullPointerException when unable to locate OME-XML version while attempting to transform to the latest version

Documentation improvements:

  • updated documentation to be compatible with the latest version of Sphinx 1.6
  • fixed the usage/references of the option markup in documentation
  • fixed the table in the Micro-Manager user page
  • updated metadata ratings for supported formats

Updated build system:

  • OME-Model version bump
    • the ome-model component has been updated to 5.5.4 which includes improvements to performance, documentation and the C++ model implementation

5.5.1 (2017 May 25)

File format improvements:

  • CellH5
    • fix for HDF5SymbolTableException when recycling an IFormatReader to reopen another CellH5 file
    • bug fix related to opening of subsets of CellH5 files, namely openBytes(r, no, x, y, w, h) for y>0
  • Zeiss CZI
    • fix pyramid resolution indexing for pyramids of different depths
    • fix for incorrect channel names and colors
  • Zeiss AxioVision ZVI
    • correct parsing of epoch for Zeiss TIFF and Zeiss ZVI

Bug fixes:

  • Command line tools
    • fix for java.lang. NegativeArraySizeException caused by incorrect dimensions when using showinf via command line with options set to autoscale and crop
  • Format tools
    • fix for java.lang. IndexOutOfBoundsException when using getFilename with an image containing multiple samples per pixel channels and a single effective channel

Updated build system:

  • Autogen jobs
    • fix for gen-meta-support to locate available org.openmicroscopy:ome-xml sources from the Maven repository following the decoupling of the model components
  • FileHandleTest
    • exclude JHDF5 native libraries from FileHandleTest to enable CellH5 files to be included in daily tests

Documentation improvements:

  • added a new example file for reading and writing of XZ and YZ orthogonal planes

5.5.0 (2017 May 8)

New file formats:

  • Olympus OIR
    • added support for Olympus .oir data (funded by a partnership between Glencoe Software and OLYMPUS EUROPA SE & Co. KG)
  • PerkinElmer Columbus

File format improvements:

  • Andor Bio-Imaging Division (ABD) TIFF
    • fixed acquisition date format from MM/dd/yyyy to dd/MM/yyyy
  • Nikon NIS-Elements ND2
    • corrected logic used to determined PixelType by parsing uiBpc tags
  • Hamamatsu ndpi
    • improved handling of channels in NDPIS datasets (thanks to Manuel Stritt)
  • Imspector OBF
    • fix for SAXParseException when description field in metadata is empty

Documentation improvements:

  • added links to public sample files for Cellomics
  • added links to public sample files for InCell 3000

5.4.1 (2017 April 13)

File format improvements:

  • MIAS (Maia Scientific)
    • added a fix for a possible exception when image files are not found under channel-specific subdirectories
  • BD Pathway
    • added fix to check if Experiment.exp is a directory or an experiment file
  • Imspector OBF
    • enabled forward compatibility for future versions, as the OBF format is backwards compatible (thanks to Bjoern Thiel)

Documentation improvements:

  • updated external homepage link for FocalPoint
  • removed Imago from list of visualization and analysis applications as it is no longer available from the Mayachitra website
  • added links to public sample files for Hamamatsu NDPI and Hamamatsu VMS
  • listed OpenSlide as available software for supported formats
  • added a new developer page detailing in-memory reading and writing
  • updated the Bio-Formats API versioning policy, which now follows strict semantic versioning
  • a new options page has been added, detailing the usage of configurable format-specific options for readers and writers. Links to the available options are also included under the relevant supported formats

5.4.0 (2017 March 21)

File format improvements:

  • DICOM
    • added support for DICOMDIR files, which allow multiple DICOM files in a single directory to be opened as a single dataset
    • plane position values for values X, Y and Z are now being set in OME-XML
    • correctly read the physical size X and Y values based on the available specification
  • Nikon NIS-Elements ND2
    • performance improvements based on reading chunkmap. Processing of the chunkmap can be disabled via the MetadataOptions API using the boolean option nativend2.chunkmap. For ImageJ users this option can be accessed via a checkbox in the Nikon ND2 section of the Bio-Formats configuration dialog Plugins ‣ Bio-Formats ‣ Bio-Formats Plugins Configuration (thanks to Christian Sachs)
  • OME-TIFF
    • added an option to save an OME-TIFF dataset as a binary TIFF and companion XML. This can be used via the bfconvert command line tool by setting the value of option ometiff.companion to the name of the companion file to use. For example bfconvert -option ometiff.companion outputFile.companion.ome inputFile.tiff outputFile.ome.tiff
  • CellVoyager
    • metadata fixes specifically the naming of plates. Additional refactoring of the reader for general maintainability
  • Gatan Digital Micrograph
    • previously missing Image-Instrument reference has been added to OME-XML
  • TiffSaver
    • ensure open resources are closed under all possible scenarios
  • Zeiss CZI
    • improved performance of large uncompressed images. When tiles from a large uncompressed image with no internal tiling are requested, only the specific tile specified in the call to openBytes is read from disk, instead of the entire image being read and then copied
  • Zeiss AxioVision ZVI (Zeiss Vision Image)
    • ensure that the bitsPerPixel field is always set to match the final pixel type, and populate any channel colors that were parsed in the metadata. The bits per pixel update should only affect uint16 or int16 files where the acquisition bit depth is not a multiple of 8, and the RGB channel count is greater than 1

Updated build system:

  • updated dependency for NetCDF to 4.3.22
  • updated copyright headers from 2016 to 2017 and reviewed and fixed any incorrect header descriptions
  • documentation has been migrated to use .rst file format for Sphinx files
  • reviewed and cleaned up warnings such as unused variables and imports
  • added CellVoyager datasets to automated testing via continuous integration
  • unified the semantics for creating temporary directories within unit tests

Documentation improvements:

  • fixed link for PerkinElmer UltraVIEW system
  • fixed links for NIfTI public specification and data sets
  • available software for Hamamatsu ndpi has been updated from NDP.view to NDP.view2

5.3.4 (2017 February 21)

Bug fixes:

  • ImageJ
    • fix for a NullPointerException when exporting images that were not opened via the Bio-Formats importer, and thus do not have a complete OMEXMLMetadata store
  • Java 1.9
    • fix compile and runtime errors to enable building with Java 1.9
  • ECAT7
    • update to add support for different versions of ECAT7 files (thanks to Torsten Stöter)

Updated build system:

  • updated dependency for ome-model in the POM to version 5.4.0. This allows for improved ROI handling by enabling support for Shape objects with Transform attributes. OME-XML schema version remains unchanged as OME schema 2016-06

Documentation improvements:

  • new public sample files added for ECAT7 (thanks to Torsten Stöter)
  • new public sample files added for Leica LIF (thanks to Michael Goelzer)
  • new specification document (Version 3.2) for Leica LIF
  • updated links to OMERO documentation as a result of decoupling

5.3.3 (2017 February 2)

Bug fixes:

  • ImageJ
    • fix for issue when exporting from an ImagePlus that represents signed data. The pixel type will now remain unchanged as will the pixel values which had previously been scaled incorrectly
  • Command line tools
    • fix for java.lang.IllegalArgumentException when using bfconvert via command line with option set to only convert a single time-point, channel or Z section
  • Tiff writing
    • using TiffWriter to write tiled images now supports the writing of BigTIFF datasets

File format fixes:

  • Applied Precision CellWorX
    • fix to now display the correct plate name and dimensions
  • NIFTI
    • a few fixes for problems with byte alignment when reading non-core metadata from NIFTI headers
  • Leica LIF
    • added support for timestamps of LIF files created with LAS AF 3.1 or newer. In the case of a halted acquisition only non-null timestamps are stored in the OME metadata (thanks to Michael Goelzer)
    • the physical pixel height and width were incorrectly calculated by dividing by the number of pixels. This has now been corrected to match the official Leica LIF specification documents by dividing by the number of pixels minus one (thanks to Michael Goelzer)
    • for backwards compatibility an option to preserve pre-5.3.3 physical sizes has been added. This can be set either via command line tools, through the API with the loci.formats.in.DynamicMetadataOptions class, or in the Bio-Formats plugin configuration in ImageJ
  • Improvision TIFF
    • channel colors are now being read and if present set correctly in image metadata
  • MetaMorph
    • fix for java.lang.OutOfMemoryError exceptions when reading large Metamorph TIFF plates

Updated build system:

  • version history file added to MATLAB bundle as NEWS.rst
  • increased TiffWriter test coverage
  • added test coverage framework for command line tools including new ImageConverterTest

Documentation improvements:

  • improved documentation and new examples for using tiled writing
  • updated developer documentation for use of Bio-Formats as a Maven, Gradle or Ivy dependency
  • documentation for Leica LIF bug fixes and use of backward compatibility options
  • fixes for a number of broken links

5.3.2 (2017 January 9)

Bug fixes:

  • ImageJ
    • fixed race condition when opening multiple series from a dataset, as introduced by thumbnail loading changes in 5.3.0
    • updated thumbnail generation to be faster for datasets containing an image pyramid
  • Metamorph
    • updated to read the refractive index and set RefractiveIndex on ObjectiveSettings in the generated OME-XML (thanks to Marc Bruce)
  • Metamorph TIFF
    • fixed Z and channel dimension counts when each channel has a unique Z position
    • updated to read the emission wavelength and set EmissionWavelength on LightSourceSettings in the generated OME-XML
  • QuickTime
    • fixed incorrect image data when reading of tiles from single channel files
  • file grouping
    • fixed handling of loci.formats.in.MetadataOptions objects by the loci.formats.FileStitcher reader

Documentation improvements:

  • fixed extensions listed for Zeiss TIFF
  • simplified markdown for creating tables

5.3.1 (2016 December 19)

File format fixes:

  • TIFF
    • fixed invalid IFD values when writing TIFF or OME-TIFF files with Bio-Formats 5.3.0. This bug affected the writing of TIFF and OME-TIFF via client code using loci.formats.TiffWriter, converting to a TIFF or OME-TIFF using ‘bfconvert’ command line tool or exporting to TIFF or OME-TIFF using ImageJ/FIJI Bio-Formats exporter.

5.3.0 (2016 December 12)

New features/API:

  • added support for JPEG-XR compressed CZI data (funded by a partnership between Glencoe Software and ZEISS), adding ‘ome:jxrlib’ as a new dependency of Bio-Formats
  • improved tile-based image writing
    • added new methods to the loci.formats.IFormatWriter interface allowing to set and retrieve the tile along the X and Y dimensions
    • added default implementations to the loci.formats.FormatWriter abstract class defaulting to the entire image width/height
    • added functionality to loci.formats.TiffWriter adding support for tiled images writing for TIFF and derived formats like OME-TIFF
    • added developer documentation and samples for tiled reading/writing
  • added a new MetadataOptions implementation supporting arbitrary key/value pairs
  • updated the display command line utility to support passing key/value options using showinf -option
  • added two options to the CZI reader to disable autostitching and exclude pyramid file attachments. Added new checkboxes to the CZI configuration interface of the ImageJ plugin to activate these options

Bug fixes/deprecations:

  • deprecated loci.formats.meta.MetadataConverter in favor of ome.xml.meta.MetadataConverter
  • updated method deprecated in Octave 4.2.0 (thanks to Carnë Draug)
  • OME-XML
    • fixed handling of Mask BinData elements

Component architecture changes/decoupling:

  • removed formats-common component - now decoupled to the new ome/ome-common-java GitHub repository and consumed as ‘org.openmicroscopy:ome-common’ artifact from Maven Central
  • removed ome-poi component - now decoupled to the new ome/ome-poi GitHub repository and consumed as ‘org.openmicroscopy:ome-poi’ artifact from Maven Central
  • removed specification, xsd-fu and ome-xml components - now decoupled to the new ome/ome-model GitHub repository and consumed as ‘org.openmicroscopy:{specification,ome-xml}’ artifacts from Maven Central
  • removed mdbtools component - now decoupled to the new ome/ome-mdbtools GitHub repository and consumed as ‘org.openmicroscopy:ome-mdbtools’ artifact from Maven Central
  • removed stubs components - now decoupled to the new ome/ome-stubs GitHub repository and consumed as ‘org.openmicroscopy:{lwf-stubs,mipav-stubs}’ artifacts from Maven Central
  • removed metakit component - now decoupled to the new ome/ome-metakit GitHub repository and consumed as ‘org.openmicroscopy:metakit’ artifacts from Maven Central
  • updated developer documentation for the decoupled components

Updated build system:

  • dropped embedded JARs and now use the Maven Ant Tasks plugin to unify the dependencies using the POM
  • improved Ant JAR and bundle target
  • dropped deprecated osgi targets, OME Tools bundle and ome-jxr component
  • removed PDF generation from the docs-sphinx target
  • added version number to Javadoc zip bundle name
  • migrated unit tests out of test-suite into formats-bsd
  • fixed test-suite targets, paths and symlink handling
  • fixed test-metadata and migrated it into test-suite
  • fixed mismatch between ND2HandlerTest package and location
  • cleaned up test-build to remove obsolete and decoupled components and folders
  • simplified Travis build
  • POM repositories clean-up to reduce complexity and use Maven Central as the first location to look for dependencies
  • now storing all versions in the top-level POM
  • updated build versioning from Maven by unified versioning strategy, reviewing meta information stored in the manifests of each JAR and introspecting this information in the FormatTools API to retrieve version and revision numbers
  • updated developer documentation on updated build system

5.2.4 (2016 October 18)

Java bug fixes:

  • OME-TIFF
    • fixed regression when populating plane metadata
  • CZI
    • populated series metadata with the scene/position information

5.2.3 (2016 October 5)

Java bug fixes:

  • CZI
    • fixed imageCount for RGB images
  • ICS writing
    • fixed ordering of image dimensions
  • DeltaVision
    • fixed reading of large time dimensions

Command-line tools improvements:

  • bftools.zip now includes the version history as NEWS.rst (thanks to Gerhard Burger)

Code clean-up/improvements:

  • switched to String.indexOf(int) in GPL-licensed reader code so that a simpler library method can be used
  • strings now extended with characters where possible
  • completed deprecation of DataTools.sanitizeDouble()
  • deprecated unused OSGi and ome-tools bundle build targets

OME-XML changes/improvements:

  • bumped schema version number to 2 (schema namespace left unchanged)
  • added acquisition modes BrightField, SweptFieldConfocal and SPIM
  • added parsing for Laser Scan Confocal and Swept Field Confocal

Documentation improvements:

  • documented versioning policy
  • clarified supported versions for Micro-Manager and Olympus ScanR files

5.2.2 (2016 September 13)

Java bug fixes and improvements:

  • fixed a regression in which the DataTools number parsing API would not be thread-safe anymore
  • InCell
    • improved handling of Analyzer 2000 datasets to find TIFF files
  • FV1000
    • fixed preview names ordering
  • OME-TIFF
    • enabled all BigTIFF extensions
  • various code cleanup across the Java code
  • added test coverage for all example codes in the developer documentations
  • added tests covering the semantics of the INI parser

ImageJ bug fixes and improvements:

  • fixed a bug in ImageJ when swapping dimensions of an image with multiple series of different dimensions
  • added an option to the exporter to pad filename indexes with zeros

Command-line tools improvements:

  • allowed the binaries to be symlinked (thanks to Gerhard Burger)
  • added an option to bfconvert to pad filename indexes with zeros

5.2.1 (2016 August 25)

Java bug fixes:

  • Zeiss CZI
    • fixed NumberFormatException when the position object is not null but the values of child are null
  • SimplePCI
    • made IniParser less stringent to allow reading of imperfectly formatted TIFF description headers
  • fixed stitching of file patterns in ImageJ to remove duplication of directory names in the file path
  • added an option to bfconvert to allow creation of OME-TIFF without lookup tables
  • addition of MetadataOnly elements containing no BinData or TiffData now handled via MetadataTools API in ImageInfo
  • example code in developer docs is now tested via a new Maven module

5.2.0 (2016 August 18)

Java format support improvements are listed below.

†Denotes a major breaking change to the reader (typically modification of core metadata). Code changes or re-import may be necessary in ImageJ/FIJI and OMERO.

  • added support (and public sample files) for Becker & Hickl .spc FIFO data
  • added support for Princeton Instruments .spe data
  • bug fixes for many formats including:
    • CellSens VSI†
      • fixes for correctly reading dimensions
    • FlowSight
      • fixes to infer channel count from channel names (thanks to Lee Kamentsky)
    • Hamamatsu VMS†
      • fixed dimensions of full-resolution images
    • ICS writing
      • fixed dimension population for split files
    • Kodak BIP
      • fixed handling of CCD temperature stored in hexadecimal
    • Leica LIF
      • fixed incorrect plane offsets for large multi-tile files
    • LiFlim
      • fixed ExposureTime check and units usage
    • Micro-Manager
      • fixed handling of large datasets saved as image stacks and split over multiple files
      • added user documentation for file saving options
    • MRC and Spider
      • fixed format type checking
    • Nifti
      • fixed planeSize to prevent crashes when loading large files (thanks to Christian Niedworok)
      • added support for gzipped compressed .nii.gz files (thanks to Eric Barnhill)
      • added public samples and updated documented supported file extensions
    • OME-TIFF
      • fixed Plane population errors
      • fixed NullPointerException when closing reader for partial multi-file filesets
      • reduced buffer size for RandomAccessInputStreams to improve performance
      • deprecated getMetadataStoreForConversion and getMetadataStoreForDisplay methods
    • OME-XML
      • fixed metadata store
    • PicoQuant
      • updated reader to always buffer data
    • PNG writing
    • SDT
      • performance improvements for loading of large files
    • Slidebook
    • SVS
      • fixed NumberFormatException
    • Tiff
      • fixed integer overflow to read resolutions correctly
      • fixed handling of tiled images with tile width less than 64
    • Zeiss CZI
      • fixed timestamp indexing when multiple separate channels are present
      • improved slide support - slides are now detected as a complete full-resolution image (instead of each tile being a separate series) and pyramid sub-resolutions and label/overview images are also detected
    • Zeiss LSM
      • fixed Plane population errors
    • Zeiss ZVI†
      • reworked image ordering calculation to allow for tiles

Top-level Bio-Formats API changes:

  • Java 1.7 is now the minimum supported version
  • the native-lib-loader dependency has been bumped to version 2.1.4
  • the xalan dependency has been bumped to version 2.7.2
  • all the ome.jxr classes have been deprecated to make clear that there is no JPEG-XR support implemented in Bio-Formats as yet
  • the DataTools API has been extended to add a number of utility functions to:
    • account for decimal separators in different locales
    • parse a String into Double, Float, Integer etc
    • handle NumberFormatException thrown when parsing Unit tests
  • the Logging API has been updated to respect logging frameworks (log4j/logback) initialized via a binding-specific configuration file and to prevent DebugTools.enableLogging(String) from overriding initialized logger levels (see Logging for more information)
  • helper methods have been added to FormatTools allowing a stage position to be formatted from an input Double and an input unit
  • the Formats API has also been updated to add a new validate property to MetadataOptions and support for MetadataOptions has been moved to FormatHandler level to allow it to be used by both Readers and Writers
  • initial work on Reader discoverability extended the ClassList API to allow the readers.txt configuration file to be annotated using key/value pairs to mark optional Readers and specify additional per-Reader options

Other general improvements include:

  • improved performance of getUsedFiles
  • fixes for FilePatternBlock, AxisGuesser, FilePattern
  • fixes for the detection of CSV pattern blocks by FilePatternBlock
  • bioformats_package.jar now includes bio-formats-tools as a dependency so ImageConverter, ImageFaker and ImageInfo classes are included in the bundle
  • the JACE C++ implementation has been decoupled as it does not function with Java 1.8 (see legacy repo)
  • ImageJ fixes
    • to allow reader delegation when a legacy reader is enabled but not working
    • to allow ROIs to be imported to the ImageJ ROI manager or added to a new overlay
  • MATLAB fixes
    • improved integration with Octave (thanks to Carnë Draug)
    • added logging initialization
  • Command-line tools fixes
    • upgrade check no longer run when passing -version
    • common methods refactoring
    • showinf improvements to preload format
    • tiffcomment now warns that it requires an ImageDescription tag to be present in the TIFF file
  • added many automated tests and improved FakeReader testing framework
  • documentation improvements include:
    • clarifying status of legacy Quicktime and ND2 readers
    • noting that the Gatan reader does not currently support stacks
    • more Java examples added to the developer documentation
    • new units page for developers

The Data Model version 2016-06 has been released to introduce Folders, and to simplify both the graphical aspects of the model and code generation. Full details are available in the OME Model and Formats Documentation. OME-XML changes include:

  • Map is now a complexType rather than an element and MapPairs has been dropped
  • extended enum metadata has been introduced to better support units
  • Shape and LightSource are now complexTypes rather than elements
  • BinData has been added to code generation to handle raw binary data
  • various code generation improvements to:
    • simplify and standardize the generation process
    • remove a number of hard-coded exceptional cases allowing for easier maintenance and growth
    • allow for genuine abstract model types and enable C++ model implementation
  • updated OME-XML and OME-TIFF public sample files

The Bio-Formats C++ native implementation has been decoupled from the Java codebase and will be released as OME-Files C++ from now on, with the exception of OME-XML which is still within Bio-Formats at present (there is a plan to decouple both the Java and the C++ versions of OME-XML in future).

The following components have had their licensing updated to Simplified (2-clause) BSD:

  • XSL transforms
  • specification code
  • xsd-fu Python code

5.1.10 (2016 May 9)

Java bug fixes:

  • fixed warnings being thrown for ImageJ and other non-FIJI users on Windows (these warnings were triggered by the removal of the 3i Slidebook DLLs from the source code repository in Bio-Formats 5.1.9 and should now only be triggered when opening Slidebook files without the update site enabled - http://www.openmicroscopy.org/info/slidebook)
  • a fix in the ImageJ plugin for files grouped using the “Dimensions” option
  • a fix for writing TIFF files in tiles

5.1.9 (2016 April 14)

  • Java bug fixes, including:
    • SDT
      • fixed width padding calculation for single-pixel image
    • Deltavision
      • fixed the parsing of the new date format
      • added support for parsing and storing the working distance in native units
    • Micromanager
      • cleaned up JSON metadata parsing
    • Olympus Fluoview
      • fixed null pointer exceptions while parsing metadata
    • Leica LIF
      • fixed large multi-tiled files from having incorrect plane offsets after the 2GB mark
    • EM formats (MRC and Spider)
      • added native length support for EM readers
    • Gatan
      • fixed erroneous metadata parsing
      • added support for parsing and storing the physical sizes in native units
    • OME-TIFF
      • improved handling of OME-TIFF multi-file fileset’s with partial metadata blocks
    • Nikon ND2
      • fixed the parsing of emission wavelength
    • Olympus CellR (APL)
      • fixed multiple parsing issues with the mtb file
    • SlideBook
    • Zeiss CZI
      • fixed parsing of files with multiple mosaics and positions
  • Documentation updates, including:
    • improved documentation for the export of BigTIFFs in ImageJ
  • C++:
    • no changes.

5.1.8 (2016 February 15)

  • Java bug fixes, including:
    • FEI TIFF
      • fixed stage position parsing and whitespace handling (thanks to Antoine Vandecreme)
    • Pyramid TIFF
      • fixed tile reading when a cache (.bfmemo) file is present
    • MicroManager
      • updated to parse JSON data from tags 50839 and 51123
      • fixed to detect *_metadata.txt files in addition to metadata.txt files
      • fixed to handle datasets with each stack in a single file
    • OME-XML
      • updated to make .ome.xml an official extension
    • OME-TIFF
      • fixed to ignore invalid BinaryOnly elements
    • TIFF
      • fixed caching of BigTIFF files
    • Slidebook
      • fixed handling of montages in Slidebook6Reader (thanks to Richard Myers)
    • Performance improvement for writing files to disk (thanks to Stephane Dallongeville)
    • Build system
      • fixed Maven POMs to reduce calls to artifacts.openmicroscopy.org
      • fixed bioformats_package.jar to include the loci.formats.tools package
  • Documentation updates, including:
    • updated format pages to include links to example data
    • clarified description of Qu for MATLAB (thanks to Carnë Draug)
    • added installation instructions for Octave (thanks to Carnë Draug)
  • C++:
    • Bugfixes to the OME-TIFF writer to correct use of the metadata store with multiple series
    • Ensure file and writer state consistency upon close failure

5.1.7 (2015 December 7)

  • Java bug fixes, including:
    • Prevent physical pixel sizes from being rounded to 0, for all formats
    • Metamorph
      • fixed calculation of Z step size
      • fixed detection of post-processed dual camera acquisitions (thanks to Mark Kittisopikul)
    • OME-XML
      • fixed XML validation when an ‘xmlns’ value is not present (thanks to Bjoern Thiel)
    • MINC
      • fixed endianness of image data
    • Andor/Fluoview TIFF
      • fixed calculation of Z step size
    • MATLAB
      • improved performance by reducing static classpath checks (thanks to Mark Kittisopikul)
    • Gatan
      • fixed physical size parsing in non-English locales
    • Automated testing
      • fixed handling of non-default physical size and plane position units
  • Documentation updates, including:
    • updated MapAnnotation example to show linkage of annotations to images
  • C++:
    • no changes, released to keep version numbers in sync with Bio-Formats Java

5.1.6 (2015 November 16)

  • Java bug fixes, including:
    • Updated to use native units for following formats:
      • IMOD
      • Analyze
      • Unisoku
      • Olympus CellR (APL)
    • Metamorph TIFF
      • fixed handling of multi-line descriptions
      • added support for dual camera acquisitions
    • Zeiss LMS
      • fixed exception in type detection
    • Zeiss CZI
      • fixed detection of line scan Airyscan data
    • Slidebook
      • fixed calculation of physical Z size
    • ImageJ plugins
      • fixed handling of non-default units
      • fixed setting of preferences via macros
    • Automated testing
      • fixed handling of non-default units for physical sizes and timings
  • C++ changes, including:
    • allow relocatable installation on Windows
    • reduce time required for debug builds
  • Documentation updates, including:
    • addition of “Multiple Images” column to the supported formats table
    • addition of a MapAnnotation example

5.1.5 (2015 October 12)

  • Java bug fixes, including:
    • ImageJ plugins
      • fixed use of “Group files…” and “Open files individually” options
      • fixed placement of ROIs
      • fixed size of the “About Plugins > Bio-Formats Plugins” window
    • xsd-fu (code generation)
      • removed OMERO-specific logic
    • Metamorph
      • fixed physical Z size calculation
    • Gatan DM3/DM4
      • fixed physical pixel size parsing
    • BMP
      • added support for RLE compression
    • DICOM
      • updated to respect the WINDOW_CENTER tag
      • fixed image dimensions when multiple sets of width and height values are present
    • Fluoview and Andor TIFF
      • fixed physical Z size calculation
    • Imspector OBF
      • updated to parse OME-XML metadata (thanks to Bjoern Thiel)
  • C++ changes:
    • TIFF strip/tile row and column calulations corrected to compute the correct row and column count
    • Several compiler warnings removed (false positive warnings in third-party headers disabled, and additional warnings fixed)
    • It is now possible to build with Boost 1.59 and compile with a C++14 compiler
  • The source release is now provided in both tar.xz and zip formats
  • Documentation updates, including:
    • substantial updates to the format pages
      • improved linking of reader/writer classes to each format page
      • improved supported metadata pages for each format
      • updated format page formatting for clarity
      • added developer documentation for adding and modifying format pages

5.1.4 (2015 September 7)

  • Bug fixes, including:
    • Command line tools
      • fixed display of usage information
    • Automated testing
      • fixed problems with symlinked data on Windows
      • added unit tests for checking physical pixel size creation
    • Cellomics
      • fixed reading of sparse plates
    • SlideBook
      • fixed a few lingering issues with native library packaging
    • SimplePCI/HCImage TIFF
      • fixed bit depth parsing for files from newer versions of HCImage
    • SimplePCI/HCImage .cxd
      • fixed image dimensions to allow for extra padding bytes
    • Leica LIF
      • improved reading of image descriptions
    • ICS
      • fixed to use correct units for timestamps and physical pixel sizes
    • MicroManager
      • fixed to use correct units for timestamps
    • Gatan .dm3/.dm4
      • fixed problems with reading double-precision metadata values
    • Hamamatsu NDPI
      • fixed reading of mask images
    • Leica .lei
      • fixed reading of bit depth and endianness for datasets that were modified after acquisition
    • FEI TIFF
      • updated to read metadata from files produced by FEI Titan systems
    • QuickTime
      • fixed to handle planes with no stored pixels
    • Leica .scn
      • fixed reading of files that contain fewer images than expected
    • Zeiss .czi
      • fixed channel colors when an alpha value is not recorded
      • fixed handling of pre-stitched image tiles
    • SDT
      • added support for Zip-compressed images
    • Nikon .nd2
      • fixed to read image dimensions from new non-XML metadata
    • OME-XML
      • fixed writing of integer metadata values
  • Native C++ updates:
    • completed support for building on Windows
  • Documentation updates, including:
    • updated instructions for running automated data tests
    • clarified JVM versions currently supported

5.1.3 (2015 July 21)

  • Native C++ updates:
    • Added cmake superbuild to build core dependencies (zlib, bzip2, png, icu, xerces, boost)
    • Progress on support for Windows
  • Bug fixes, including:
    • Fixed segfault in the showinf tool used with the C++ bindings
    • Allow reading from https URLs
    • ImageJ
      • improved performance of displaying ROIs
    • Command line tools
      • fixed bfconvert to correctly create datasets with multiple files
    • Metamorph
      • improved detection of time series
      • fixed .nd datasets with variable Z and T counts in each channel
      • fixed .nd datasets that contain invalid TIFF/STK files
      • fixed dimensions when the number of planes does not match the recorded Z, C, and T sizes
    • SlideBook
      • improved native library detection (thanks to Richard Myers)
    • JPEG
      • fixed decompression of lossless files with multiple channels (thanks to Aaron Avery)
    • Imspector OBF
      • updated to support version 2 files (thanks to Bjoern Thiel)
    • Imspector MSR
      • improved detection of Z stacks
    • PerkinElmer Opera Flex
      • improved handling of multiple acquisitions of the same plate
    • Zeiss CZI
      • fixed error when opening single-file datasets whose names contained “(” and “)”
    • TIFF
      • improved speed of reading files with many tiles
    • AVI
      • updated to read frame index (idx1) tables
    • Nikon ND2
      • fixed channel counts for files with more than 3 channels
    • PNG
      • fixed decoding of interlaced images with a width or height that is not a multiple of 8
    • PSD
      • improved reading of compressed images
  • Documentation improvements, including:
    • updated instructions for writing a new file format reader
    • updated usage information for command line tools
    • new Javadocs for the MetadataStore and MetadataRetrieve interfaces

5.1.2 (2015 May 28)

  • Added OME-TIFF writing support to the native C++ implementation
  • OME-TIFF export: switch to BigTIFF if .ome.tf2, .ome.tf8, or .ome.btf extensions are used
  • Improved MATLAB developer documentation
  • Added SlideBook reader that uses the SDK from 3I (thanks to Richard Myers and 3I - Intelligent Imaging Innovations)
  • Preliminary work to make MATLAB toolbox work with Octave
  • Many bug fixes, including:
    • ImageJ
      • fixed regression in getPlanePosition* macro extension methods
      • fixed display of composite color virtual stacks
    • Nikon ND2
      • improved parsing of plane position and timestamp data
    • TIFF
      • reduced memory required to read color lookup tables
    • Zeiss LSM
      • improved parsing of 16-bit color lookup tables
    • Zeiss CZI
      • fixed ordering of original metadata table
      • fixed reading of large pre-stitched tiled images
    • AIM
      • fixed handling of truncated files
    • Metamorph/MetaXpress TIFF
      • improved UIC1 metadata tag parsing

5.1.1 (2015 April 28)

  • Add TIFF writing support to the native C++ implementation
  • Fixed remaining functional differences between Windows and Mac/Linux
  • Improved performance of ImageJ plugin when working with ROIs
  • TIFF export: switch to BigTIFF if .tf2, .tf8, or .btf extensions are used
  • Many bug fixes, including:
    • fixed upgrade checking to more accurately report when a new version is available
    • Zeiss CZI
      • fixed ordering of multiposition data
      • improved support for RGB and fused images
    • Nikon ND2
      • improved ordering of multiposition data
    • Leica LIF
      • improved metadata validity checks
      • improved excitation wavelength detection
    • Metamorph STK/TIFF
      • record lens numerical aperture
      • fixed millisecond values in timestamps
    • Gatan DM3
      • correctly detect signed pixel data
    • Imaris HDF
      • fix channel count detection
    • ICS export
      • fix writing of files larger than 2GB

5.1.0 (2015 April 2)

  • Improvements to performance with network file systems
  • Improvements to developer documentation
  • Initial version of native C++ implementation
  • Improved support for opening and saving ROI data with ImageJ
  • Added support for CellH5 data (thanks to Christoph Sommer)
  • Added support for Perkin Elmer Nuance data (thanks to Lee Kamentsky)
  • Added support for Amnis FlowSight data (thanks to Lee Kamentsky and Sebastien Simard)
  • Added support for Veeco AFM data
  • Added support for Zeiss .lms data (not to be confused with .lsm)
  • Added support for I2I data
  • Added support for writing Vaa3D data (thanks to Brian Long)
  • Updated to OME schema 2015-01
  • Update RandomAccessInputStream and RandomAccessOutputStream to read and write bits
  • Many bug fixes, including:
    • Leica SCN
      • fix pixel data decompression
      • fix handling of files with multiple channels
      • parse magnification and physical pixel size data
    • Olympus/CellSens .vsi
      • more thorough parsing of metadata
      • improved reading of thumbnails and multi-resolution images
    • NDPI
      • fix reading of files larger than 4GB
      • parse magnification data
    • Zeiss CZI
      • improve parsing of plane position coordinates
    • Inveon
      • fix reading of files larger than 2 GB
    • Nikon ND2
      • many improvements to dimension detection
      • many improvements to metadata parsing accuracy
      • update original metadata table to include PFS data
    • Gatan DM3
      • fix encoding when parsing metadata
      • fix physical pixel size parsing
    • Metamorph
      • fix off-by-one in metadata parsing
      • fix number parsing to be independent of the system locale
    • JPEG
      • parse EXIF data, if present (thanks to Paul Van Schayck)
    • OME-XML/OME-TIFF
      • fix handling of missing image data
    • PrairieView
      • improved support for version 5.2 data (thanks to Curtis Rueden)
    • DICOM
      • fix dimensions for multi-file datasets
      • fix pixel data decoding for files with multiple images
    • PNG
      • reduce memory required to read large images
    • Imspector OBF
      • fix support for version 5 data (thanks to Bjoern Thiel)
    • PCORAW
      • fix reading of files larger than 4 GB
    • AIM
      • fix reading of files larger than 4 GB
    • MRC
      • add support for signed 8-bit data
    • Fix build errors in MIPAV plugin
    • ImageJ
      • fix export from a script/macro
      • fix windowless export
      • allow exporting from any open image window
      • allow the “Group files with similar names” and “Swap dimensions” options to be used from a script/macro
    • bfconvert
      • fix writing each channel, Z section, and/or timepoint to a separate file
      • add options for configuring the tile size to be used when saving images

5.0.8 (2015 February 10)

  • No changes - release to keep version numbers in sync with OMERO

5.0.7 (2015 February 5)

  • Several bug fixes, including:
    • ND filter parsing for DeltaVision
    • Timepoint count and original metadata parsing for Metamorph
    • Build issues when Genshi or Git are missing
    • LZW image decoding

5.0.6 (2014 November 11)

  • Several bug fixes, including:
    • Pixel sign for DICOM images
    • Image dimensions for Zeiss CZI and Nikon ND2
    • Support for Leica LIF files produced by LAS AF 4.0 and later

5.0.5 (2014 September 23)

  • Documentation improvements
  • Support for non-spectral Prairie 5.2 datasets

5.0.4 (2014 September 3)

  • Fix compile and runtime errors under Java 1.8
  • Improvements to Nikon .nd2 metadata parsing
  • Added support for PicoQuant .bin files (thanks to Ian Munro)

5.0.3 (2014 August 7)

  • Many bug fixes for Nikon .nd2 files
  • Several other bug fixes, including:
    • LZW image decoding
    • Stage position parsing for Zeiss CZI
    • Exposure time units for ScanR
    • Physical pixel size units for DICOM
    • NDPI and Zeiss LSM files larger than 4GB
    • Z and T dimensions for InCell 6000 plates
    • Export of RGB images in ImageJ
  • Improved metadata saving in MATLAB functions

5.0.2 (2014 May 28)

  • Many bug fixes for Zeiss .czi files
  • Several other bug fixes, including:
    • Gatan .dm3 units and step count parsing
    • Imspector .msr 5D image support
    • DICOM reading of nested tags
  • Update native-lib-loader version (to 2.0.1)
  • Updates and improvements to user documentation

5.0.1 (2014 Apr 7)

  • Added image pyramid support for CellSens .vsi data
  • Several bug fixes, including:
    • Woolz import into OMERO
    • Cellomics file name parsing (thanks to Lee Kamentsky)
    • Olympus FV1000 timestamp support (thanks to Lewis Kraft and Patrick Riley)
    • (A)PNG large image support
    • Zeiss .czi dimension detection for SPIM datasets
  • Performance improvements for Becker & Hickl .sdt file reading (thanks to Ian Munro)
  • Performance improvements to directory listing over NFS
  • Update slf4j and logback versions (to 1.7.6 and 1.1.1 respectively)
  • Update jgoodies-forms version (to 1.7.2)

5.0.0 (2014 Feb 25)

  • New bundled ‘bioformats_package.jar’ for ImageJ
  • Now uses logback as the slf4j binding by default
  • Updated component names, .jar file names, and Maven artifact names
  • Fixed support for Becker & Hickl .sdt files with multiple blocks
  • Fixed tiling support for TIFF, Hamamatsu .ndpi, JPEG, and Zeiss .czi files
  • Improved continuous integration testing
  • Updated command line documentation

5.0.0-RC1 (2013 Dec 19)

5.0.0-beta1 (2013 June 20)

4.4.10 (2014 Jan 15)

  • Bug fixes including CellWorx, Metamorph and Zeiss CZI
  • Updates to MATLAB documentation

4.4.9 (2013 Oct 16)

  • Many bug fixes including improvements to support for ND2 format
  • Java 1.6 is now the minimum supported version; Java 1.5 is no longer supported

4.4.8 (2013 May 2)

  • No changes - release to keep version numbers in sync with OMERO

4.4.7 (2013 April 25)

  • Many bug fixes to improve support for more than 20 formats
  • Improved export to multi-file datasets
  • Now uses slf4j for logging rather than using log4j directly, enabling other logging implementations to be used, for example when Bio-Formats is used as a component in other software using a different logging system.

4.4.6 (2013 February 11)

  • Many bug fixes
  • Further documentation improvements

4.4.5 (2012 November 13)

  • Restructured and improved documentation
  • Many bug fixes, including:
    • File grouping in many multi-file formats
    • Maven build fixes
    • ITK plugin fixes

4.4.4 (2012 September 24)

  • Many bug fixes

4.4.2 (2012 August 22)

  • Security fix for OMERO plugins for ImageJ

4.4.1 (2012 July 20)

  • Fix a bug that prevented BigTIFF files from being read
  • Fix a bug that prevented PerkinElmer .flex files from importing into OMERO

4.4.0 (2012 July 13)

  • Many, many bug fixes
  • Added support for:
    • .nd2 files from Nikon Elements version 4
    • PerkinElmer Operetta data
    • MJPEG-compressed AVIs
    • MicroManager datasets with multiple positions
    • Zeiss CZI data
    • IMOD data

4.3.3 (2011 October 18)

  • Many bug fixes, including:
    • Speed improvements to HCImage/SimplePCI and Zeiss ZVI files
    • Reduce memory required by Leica LIF reader
    • More accurately populate metadata for Prairie TIFF datasets
    • Various fixes to improve the security of the OMERO plugin for ImageJ
    • Better dimension detection for Bruker MRI datasets
    • Better thumbnail generation for histology (SVS, NDPI) datasets
    • Fix stage position parsing for Metamorph TIFF datasets
    • Correctly populate the channel name for PerkinElmer Flex files

4.3.2 (2011 September 15)

  • Many bug fixes, including:
    • Better support for Volocity datasets that contain compressed data
    • More accurate parsing of ICS metadata
    • More accurate parsing of cellSens .vsi files
  • Added support for a few new formats
    • .inr
    • Canon DNG
    • Hitachi S-4800
    • Kodak .bip
    • JPX
    • Volocity Library Clipping (.acff)
    • Bruker MRI
  • Updated Zeiss LSM reader to parse application tags
  • Various performance improvements, particularly for reading/writing TIFFs
  • Updated OMERO ImageJ plugin to work with OMERO 4.3.x

4.3.1 (2011 July 8)

  • Several bug fixes, including:
    • Fixes for multi-position DeltaVision files
    • Fixes for MicroManager 1.4 data
    • Fixes for 12 and 14-bit JPEG-2000 data
    • Various fixes for reading Volocity .mvd2 datasets
  • Added various options to the ‘showinf’ and ‘bfconvert’ command line tools
  • Added better tests for OME-XML backwards compatibility
  • Added the ability to roughly stitch tiles in a multi-position dataset

4.3.0 (2011 June 14)

  • Many bug fixes, including:
    • Many fixes for reading and writing sub-images
    • Fixes for stage position parsing in the Zeiss formats
    • File type detection fixes
  • Updated JPEG-2000 reading and writing support to be more flexible
  • Added support for 9 new formats:
    • InCell 3000
    • Trestle
    • Hamamatsu .ndpi
    • Hamamatsu VMS
    • SPIDER
    • Volocity .mvd2
    • Olympus SIS TIFF
    • IMAGIC
    • cellSens VSI
  • Updated to 2011-06 OME-XML schema
  • Minor speed improvements in many formats
  • Switched version control system from SVN to Git
  • Moved all Trac tickets into the OME Trac: https://trac.openmicroscopy.org
  • Improvements to testing frameworks
  • Added Maven build system as an alternative to the existing Ant build system
  • Added pre-compiled C++ bindings to the download page

4.2.2 (2010 December 6)

  • Several bug fixes, notably:
    • Metadata parsing fixes for Zeiss LSM, Metamorph STK, and FV1000
    • Prevented leaked file handles when exporting to TIFF/OME-TIFF
    • Fixed how BufferedImages are converted to byte arrays
  • Proper support for OME-XML XML annotations
  • Added support for SCANCO Medical .aim files
  • Minor improvements to ImageJ plugins
  • Added support for reading JPEG-compressed AVI files

4.2.1 (2010 November 12)

  • Many, many bug fixes
  • Added support for 7 new formats:
    • CellWorX .pnl
    • ECAT7
    • Varian FDF
    • Perkin Elmer Densitometer
    • FEI TIFF
    • Compix/SimplePCI TIFF
    • Nikon Elements TIFF
  • Updated Zeiss LSM metadata parsing, with generous assistance from Zeiss, FMI, and MPI-CBG
  • Lots of work to ensure that converted OME-XML validates
  • Improved file stitching functionality; non-numerical file patterns and limited regular expression-style patterns are now supported

4.2.0 (2010 July 9)

  • Fixed many, many bugs in all aspects of Bio-Formats
  • Reworked ImageJ plugins to be more user- and developer-friendly
  • Added many new unit tests
  • Added support for approximately 25 new file formats, primarily in the SPM domain
  • Rewrote underlying I/O infrastructure to be thread-safe and based on Java NIO
  • Rewrote OME-XML parsing/generation layer; OME-XML 2010-06 is now supported
  • Improved support for exporting large images
  • Improved support for exporting to multiple files
  • Updated logging infrastructure to use slf4j and log4j

4.1.1 (2009 December 3)

  • Fixed many bugs in popular file format readers

4.1 (2009 October 21):

  • Fixed many bugs in most file format readers
  • Significantly improved confocal and HCS metadata parsing
  • Improved C++ bindings
  • Eliminated references to Java AWT classes in core Bio-Formats packages
  • Added support for reading Flex datasets from multiple servers
  • Improved OME-XML generation; generated OME-XML is now valid
  • Added support for Olympus ScanR data
  • Added OSGi information to JARs
  • Added support for Amira Mesh files
  • Added support for LI-FLIM files
  • Added more informative exceptions
  • Added support for various types of ICS lifetime data
  • Added support for Nikon EZ-C1 TIFFs
  • Added support for Maia Scientific MIAS data

4.0.1 (2009 June 1)

  • Lots of bug fixes in most format readers and writers
  • Added support for Analyze 7.1 files
  • Added support for Nifti files
  • Added support for Cellomics .c01 files
  • Refactored ImageJ plugins
  • Bio-Formats, the common package, and the ImageJ plugins now require Java 1.5
  • Eliminated native library dependency for reading lossless JPEGs
  • Changed license from GPL v3 or later to GPL v2 or later
  • Updated Olympus FV1000, Zeiss LSM, Zeiss ZVI and Nikon ND2 readers to parse ROI data
  • Added option to ImageJ plugin for displaying ROIs parsed from the chosen dataset
  • Fixed BufferedImage construction for signed data and unsigned int data

4.0.0 (2009 March 3)

  • Improved OME data model population for Olympus FV1000, Nikon ND2, Metamorph STK, Leica LEI, Leica LIF, InCell 1000 and MicroManager
  • Added TestNG tests for format writers
  • Added option to ImageJ plugin to specify custom colors when customizing channels
  • Added ability to upgrade the ImageJ plugin from within ImageJ
  • Fixed bugs in Nikon ND2, Leica LIF, BioRad PIC, TIFF, PSD, and OME-TIFF
  • Fixed bugs in Data Browser and Exporter plugins
  • Added support for Axon Raw Format (ARF), courtesy of Johannes Schindelin
  • Added preliminary support for IPLab-Mac file format

2008 December 29

  • Improved metadata support for DeltaVision, Zeiss LSM, MicroManager, and Leica LEI
  • Restructured code base/build system to be component-driven
  • Added support for JPEG and JPEG-2000 codecs within TIFF, OME-TIFF and OME-XML
  • Added support for 16-bit compressed Flex files
  • Added support for writing JPEG-2000 files
  • Added support for Minolta MRW format
  • Added support for the 2008-09 release of OME-XML
  • Removed dependency on JMagick
  • Re-added caching support to data browser plugin
  • Updated loci.formats.Codec API to be more user-friendly
  • Expanded loci.formats.MetadataStore API to better represent the OME-XML model
  • Improved support for Nikon NEF
  • Improved support for TillVision files
  • Improved ImageJ import options dialog
  • Fixed bugs with Zeiss LSM files larger than 4 GB
  • Fixed minor bugs in most readers
  • Fixed bugs with exporting from an Image5D window
  • Fixed several problems with virtual stacks in ImageJ

2008 August 30

  • Fixed bugs in many file format readers
  • Fixed several bugs with swapping dimensions
  • Added support for Olympus CellR/APL files
  • Added support for MINC MRI files
  • Added support for Aperio SVS files compressed with JPEG 2000
  • Added support for writing OME-XML files
  • Added support for writing APNG files
  • Added faster LZW codec
  • Added drag and drop support to ImageJ shortcut window
  • Re-integrated caching into the data browser plugin

2008 July 1

  • Fixed bugs in most file format readers
  • Fixed bugs in OME and OMERO download functionality
  • Fixed bugs in OME server-side import
  • Improved metadata storage/retrieval when uploading to and downloading from the OME Perl server
  • Improved Bio-Formats ImageJ macro extensions
  • Major updates to MetadataStore API
  • Updated OME-XML generation to use 2008-02 schema by default
  • Addressed time and memory performance issues in many readers
  • Changed license from LGPL to GPL
  • Added support for the FEI file format
  • Added support for uncompressed Hamamatsu Aquacosmos NAF files
  • Added support for Animated PNG files
  • Added several new options to Bio-Formats ImageJ plugin
  • Added support for writing ICS files

2008 April 17

  • Fixed bugs in Slidebook, ND2, FV1000 OIB/OIF, Perkin Elmer, TIFF, Prairie, Openlab, Zeiss LSM, MNG, Molecular Dynamics GEL, and OME-TIFF
  • Fixed bugs in OME and OMERO download functionality
  • Fixed bugs in OME server-side import
  • Fixed bugs in Data Browser
  • Added support for downloading from OMERO 2.3 servers
  • Added configuration plugin
  • Updates to MetadataStore API
  • Updates to OME-XML generation - 2007-06 schema used by default
  • Added support for Li-Cor L2D format
  • Major updates to TestNG testing framework
  • Added support for writing multi-series OME-TIFF files
  • Added support for writing BigTIFF files

2008 Feb 12

  • Fixed bugs in QuickTime, SimplePCI and DICOM
  • Fixed a bug in channel splitting logic

2008 Feb 8

  • Many critical bugfixes in format readers and ImageJ plugins
  • Newly reborn Data Browser for 5D image visualization
    • some combinations of import options do not work yet

2008 Feb 1

  • Fixed bugs in Zeiss LSM, Metamorph STK, FV1000 OIB/OIF, Leica LEI, TIFF, Zeiss ZVI, ICS, Prairie, Openlab LIFF, Gatan, DICOM, QuickTime
  • Fixed bug in OME-TIFF writer
  • Major changes to MetadataStore API
  • Added support for JPEG-compressed TIFF files
  • Added basic support for Aperio SVS files
    • JPEG2000 compression is still not supported
  • Improved “crop on import” functionality
  • Improvements to bfconvert and bfview
  • Improved OME-XML population for several formats
  • Added support for JPEG2000-compressed DICOM files
  • EXIF data is now parsed from TIFF files

2007 Dec 28

  • Fixed bugs in Leica LEI, Leica TCS, SDT, Leica LIF, Visitech, DICOM, Imaris 5.5 (HDF), and Slidebook readers
  • Better parsing of comments in TIFF files exported from ImageJ
  • Fixed problem with exporting 48-bit RGB data
  • Added logic to read multi-series datasets spread across multiple files
  • Improved channel merging in ImageJ - requires ImageJ 1.39l
  • Support for hyperstacks and virtual stacks in ImageJ - requires ImageJ 1.39l
  • Added API for reading directly from a byte array or InputStream
  • Metadata key/value pairs are now stored in ImageJ’s “Info” property
  • Improved OMERO download plugin - it is now much faster
  • Added “open all series” option to ImageJ importer
  • ND2 reader based on Nikon’s SDK now uses our own native bindings
  • Fixed metadata saving bug in ImageJ
  • Added sub-channel labels to ImageJ windows
  • Major updates to 4D Data Browser
  • Minor updates to automated testing suite

2007 Dec 1

  • Updated OME plugin for ImageJ to support downloading from OMERO
  • Fixed bug with floating point TIFFs
  • Fixed bugs in Visitech, Zeiss LSM, Imaris 5.5 (HDF)
  • Added alternate ND2 reader that uses Nikon’s native libraries
  • Fixed calibration and series name settings in importer
  • Added basic support for InCell 1000 datasets

2007 Nov 21

  • Fixed bugs in ND2, Leica LIF, DICOM, Zeiss ZVI, Zeiss LSM, FV1000 OIB, FV1000 OIF, BMP, Evotec Flex, BioRad PIC, Slidebook, TIFF
  • Added new ImageJ plugins to slice stacks and do “smart” RGB merging
  • Added “windowless” importer plugin
    • uses import parameters from IJ_Prefs.txt, without prompting the user
  • Improved stack slicing and colorizing logic in importer plugin
  • Added support for DICOM files compressed with lossless JPEG
    • requires native libraries
  • Fixed bugs with signed pixel data
  • Added support for Imaris 5.5 (HDF) files
  • Added 4 channel merging to importer plugin
  • Added API methods for reading subimages
  • Major updates to the 4D Data Browser

2007 Oct 17

  • Critical OME-TIFF bugfixes
  • Fixed bugs in Leica LIF, Zeiss ZVI, TIFF, DICOM, and AVI readers
  • Added support for JPEG-compressed ZVI images
  • Added support for BigTIFF
  • Added importer plugin option to open each plane in a new window
  • Added MS Video 1 codec for AVI

2007 Oct 1

  • Added support for compressed DICOM images
  • Added support for uncompressed LIM files
  • Added support for Adobe Photoshop PSD files
  • Fixed bugs in DICOM, OME-TIFF, Leica LIF, Zeiss ZVI, Visitech, PerkinElmer and Metamorph
  • Improved indexed color support
  • Addressed several efficiency issues
  • Fixed how multiple series are handled in 4D data browser
  • Added option to reorder stacks in importer plugin
  • Added option to turn off autoscaling in importer plugin
  • Additional metadata convenience methods

2007 Sept 11

  • Major improvements to ND2 support; lossless compression now supported
  • Support for indexed color images
  • Added support for Simple-PCI .cxd files
  • Command-line OME-XML validation
  • Bugfixes in most readers, especially Zeiss ZVI, Metamorph, PerkinElmer and Leica LEI
  • Initial version of Bio-Formats macro extensions for ImageJ

2007 Aug 1

  • Added support for latest version of Leica LIF
  • Fixed several issues with Leica LIF, Zeiss ZVI
  • Better metadata mapping for Zeiss ZVI
  • Added OME-TIFF writer
  • Added MetadataRetrieve API for retrieving data from a MetadataStore
  • Miscellaneous bugfixes

2007 July 16

  • Fixed several issues with ImageJ plugins
  • Better support for Improvision and Leica TCS TIFF files
  • Minor improvements to Leica LIF, ICS, QuickTime and Zeiss ZVI readers
  • Added searchable metadata window to ImageJ importer

2007 July 2

  • Fixed issues with ND2, Openlab LIFF and Slidebook
  • Added support for Visitech XYS
  • Added composite stack support to ImageJ importer

2007 June 18

  • Fixed issues with ICS, ND2, MicroManager, Leica LEI, and FV1000 OIF
  • Added support for large (> 2 GB) ND2 files
  • Added support for new version of ND2
  • Minor enhancements to ImageJ importer
  • Implemented more flexible logging
  • Updated automated testing framework to use TestNG
  • Added package for caching images produced by Bio-Formats

2007 June 6

  • Fixed OME upload/download bugs
  • Fixed issues with ND2, EPS, Leica LIF, and OIF
  • Added support for Khoros XV
  • Minor improvements to the importer

2007 May 24

  • Better Slidebook support
  • Added support for Quicktime RPZA
  • Better Leica LIF metadata parsing
  • Added support for BioRad PIC companion files
  • Added support for bzip2-compressed files
  • Improved ImageJ plugins
  • Native support for FITS and PGM

2007 May 2

  • Added support for NRRD
  • Added support for Evotec Flex (requires LuraWave Java SDK with license code)
  • Added support for gzip-compressed files
  • Added support for compressed QuickTime headers
  • Fixed QuickTime Motion JPEG-B support
  • Fixed some memory issues (repeated small array allocations)
  • Fixed issues reading large (> 2 GB) files
  • Removed “ignore color table” logic, and replaced with Leica-specific solution
  • Added status event reporting to readers
  • Added API to toggle metadata collection
  • Support for multiple dimensions rasterized into channels
  • Deprecated reader and writer methods that accept the ‘id’ parameter
  • Deprecated IFormatWriter.save in favor of saveImage and saveBytes
  • Moved dimension swapping and min/max calculation logic to delegates
  • Separate GUI logic into isolated loci.formats.gui package
  • Miscellaneous bugfixes and tweaks in most readers and writers
  • Many other bugfixes and improvements

2007 Mar 16

  • Fixed calibration bugs in importer plugin
  • Enhanced metadata support for additional formats
  • Fixed LSM bug

2007 Mar 7

  • Added support for Micro-Manager file format
  • Fixed several bugs – Leica LIF, Leica LEI, ICS, ND2, and others
  • Enhanced metadata support for several formats
  • Load series preview thumbnails in the background
  • Better implementation of openBytes(String, int, byte[]) for most readers
  • Expanded unit testing framework

2007 Feb 28

  • Better series preview thumbnails
  • Fixed bugs with multi-channel Leica LEI
  • Fixed bugs with “ignore color tables” option in ImageJ plugin

2007 Feb 26

  • Many bugfixes: Leica LEI, ICS, FV1000 OIB, OME-XML and others
  • Better metadata parsing for BioRad PIC files
  • Enhanced API for calculating channel minimum and maximum values
  • Expanded MetadataStore API to include more semantic types
  • Added thumbnails to series chooser in ImageJ plugin
  • Fixed plugins that upload and download from an OME server

2007 Feb 7

  • Added plugin for downloading images from OME server
  • Improved HTTP import functionality
  • Added metadata filtering – unreadable metadata is no longer shown
  • Better metadata table for multi-series datasets
  • Added support for calibration information in Gatan DM3
  • Eliminated need to install JAI Image I/O Tools to read ND2 files
  • Fixed ZVI bugs: metadata truncation, and other problems
  • Fixed bugs in Leica LIF: incorrect calibration, first series labeling
  • Fixed memory bug in Zeiss LSM
  • Many bugfixes: PerkinElmer, DeltaVision, Leica LEI, LSM, ND2, and others
  • IFormatReader.close(boolean) method to close files temporarily
  • Replaced Compression utility class with extensible Compressor interface
  • Improved testing framework to use .bioformats configuration files

2007 Jan 5

  • Added support for Prairie TIFF
  • Fixed bugs in Zeiss LSM, OIB, OIF, and ND2
  • Improved API for writing files
  • Added feature to read files over HTTP
  • Fixed bugs in automated testing framework
  • Miscellaneous bugfixes

2006 Dec 22

  • Expanded ImageJ plugin to optionally use Image5D or View5D
  • Improved support for ND2 and JPEG-2000 files
  • Added automated testing framework
  • Fixed bugs in Zeiss ZVI reader
  • Miscellaneous bugfixes

2006 Nov 30

  • Added support for ND2/JPEG-2000
  • Added support for MRC
  • Added support for MNG
  • Improved support for floating-point images
  • Fixed problem with 2-channel Leica LIF data
  • Minor tweaks and bugfixes in many readers
  • Improved file stitching logic
  • Allow ImageJ plugin to be called from a macro

2006 Nov 2

  • Bugfixes and improvements for Leica LIF, Zeiss LSM, OIF and OIB
  • Colorize channels when they are split into separate windows
  • Fixed a bug with 4-channel datasets

2006 Oct 31

  • Added support for Imaris 5 files
  • Added support for RGB ICS images

2006 Oct 30

  • Added support for tiled TIFFs
  • Fixed bugs in ICS reader
  • Fixed importer plugin deadlock on some systems

2006 Oct 27

  • Multi-series support for Slidebook
  • Added support for Alicona AL3D
  • Fixed plane ordering issue with FV1000 OIB
  • Enhanced dimension detection in FV1000 OIF
  • Added preliminary support for reading NEF images
  • Added option to ignore color tables
  • Fixed ImageJ GUI problems
  • Fixed spatial calibration problem in ImageJ
  • Fixed some lingering bugs in Zeiss ZVI support
  • Fixed bugs in OME-XML reader
  • Tweaked ICS floating-point logic
  • Fixed memory leaks in all readers
  • Better file stitching logic

2006 Oct 6

  • Support for 3i SlideBook format (single series only for now)
  • Support for 16-bit RGB palette TIFF
  • Fixed bug preventing import of certain Metamorph STK files
  • Fixed some bugs in PerkinElmer UltraView support
  • Fixed some bugs in Leica LEI support
  • Fixed a bug in Zeiss ZVI support
  • Fixed bugs in Zeiss LSM support
  • Fixed a bug causing slow identification of Leica datasets
  • Fixed bugs in the channel merging logic
  • Fixed memory leak for OIB format
  • Better scaling of 48-bit RGB data to 24-bit RGB
  • Fixed duplicate channels bug in “open each channel in a separate window”
  • Fixed a bug preventing PICT import into ImageJ
  • Better integration with HandleExtraFileTypes
  • Better virtual stack support in Data Browser plugin
  • Fixed bug in native QuickTime random access
  • Keep aspect ratio for computed thumbnails
  • Much faster file stitching logic

2006 Sep 27

  • PerkinElmer: support for PE UltraView
  • Openlab LIFF: support for Openlab v5
  • Leica LEI: bugfixes, and support for multiple series
  • ZVI, OIB, IPW: more robust handling of these formats (eliminated custom OLE parsing logic in favor of Apache POI)
  • OIB: better metadata parsing (but maybe still not perfect?)
  • LSM: fixed a bug preventing import of certain LSMs
  • Metamorph STK: fixed a bug resulting in duplicate image planes
  • User interface: use of system look & feel for file chooser dialog when available
  • Better notification when JAR libraries are missing

2006 Sep 6

  • Leica LIF: multiple distinct image series within a single file
  • Zeiss ZVI: fixes and improvements contributed by Michel Boudinot
  • Zeiss LSM: fixed bugs preventing the import of certain LSM files
  • TIFF: fixed a bug preventing import of TIFFs created with Bio-Rad software

2006 Mar 31

  • First release