IOFormat Python 1.8.0
Loading...
Searching...
No Matches
API Changelog

All API modifications will be documented in this file.

IOF 1.7 - 2027-06-20

IOF-609: Add possibility to store stacks as a list of files

Added 2 methods StackWriter::writeFromPattern:

  • one to write ImageViews into a list of image files.
  • another to write MultiImageView content into a list of image files

IOF-589: support of tiling for TIFF writer

Added 2 options to TIFF writer: tileSize to define the tile size to apply, and forceStrips to force the writing of strips.

IOF 1.5 - 2024-01-15

IOF-560: Upgrade ioformat configuration file for plugin selection

ioformat_config.yml can now contain a libraries section which allows selecting libraries to load as plugins.

IOF 1.1 - 2023-02-08

IOF-447: IOFormat config file made optional and renamed

Config file is now optional. If not present, IOFormat behavior is the same than if file is empty. Config file (old 'config.yml') is renamed into "ioformat_config.yml"

IOF 1.0 - 2022-11-29

IOF-396: improve configuration file mechanism

Configuration file must now be called config.yml and be located in plugins folder. This file should contain a list of plugins which must be tried in a specific order when opening a file format. See user guide plugin system chapter for more details.

IOF 0.33 - 2022-04-29

IOF-352: apply API review changes

several API changes:

  • getView becomes openView
  • loadImage becomes readImage
  • save becomes writeView
  • openPattern becomes openImageFromPattern
  • loadPattern becomes readImageFromPattern
  • openListFile becomes openImageFromListFile
  • loadListFile becomes readImageFromListFile

IOF 0.32 - 2022-04-15

IOF-326: add a new getView variant to force a format when opening a file

Adding ioformat::getView(const std::string& path, const std::string& format) to make user able to force a format when opening a file.

IOF 0.30 - 2021-12-30

IOF-285: migrate factories to global space

All method from IOFormat class moved to ioformat namespace. To call these factories you previously needed to write ioformat::IOFormat::getView for example, now you can write ioformat::getView.

In Python, the factories are at the module level: ioformat.IOFormat.get_view now becoming ioformat.get_view for example.

In .NET, a class to contain the functions is required, and is now named ViewIO. So you have to write IOFormat.ViewIO.GetView where you wrote IOFormat.IOformat.GetView.

IOF 0.29 - 2021-11-23

IOF-281: new factories to handle list files

New methods in StackReader factory:

  • openListFile that stack the files listed inside a given list file.
  • loadListFile that do the same, and load the result in memory.

IOF 0.28 - 2021-10-14

IOF-280: new API to load a stack of file following a pattern

New factory class StackReader with the following methods:

  • std::shared_ptr<ImageView> openPattern(const std::string& pattern, ImageDimension newDim)
  • std::shared_ptr<ImageView> openPattern(const std::string& pattern)
  • std::shared_ptr<MemoryImageView> loadPattern(const std::string& pattern, ImageDimension newDim)
  • std::shared_ptr<MemoryImageView> loadPattern(const std::string& pattern)

IOF-296 Add multiThreadStrategy option to TiffWriter to explicitly control which strategy to use.

  • New "multiThreadStrategy" option added to TiffWriter

IOF 0.27 - 2021-09-16

IOF-263: new method to force IOFormat initialization

New method IOFormat::init() added

IOF 0.25 - 2021-07-01

IOF-250: versioning utilities

New Versioning class to handle version services, such as getting the version info, the version string or checking the library compatibility.

Two new constants defined in the header, in order to support these versioning utilities: IOFORMAT_VERSION and IOFORMAT_VERSION_STRING.

IOF 0.24 - 2021-06-04

Make exporting methods more generic

Many methods in IOFormat required WriteStreamAccess as an input, so they were replaced with the more generic interface DataAccess.

Changed methods:

  • IOFormat::save
  • IOFormat::openWriter

IOF 0.22 - 2021-04-02

IOF-240: Make writer accept more input view types

Writers are now able to take all possible view types as input as long as there is no user decision or data loss in the process.

  • JpegWriter can now handle planar Image (2D + CHANNEL dimension)
  • MRC writer can now handle MultiImageView (with frames of same shape and supported type)
  • PNG writer can handle 3D Image but only if planar (2D + CHANNEL dimension)
  • RAW writer can now handle MultiImageView (with frames of same shape and type)
  • TIFF writer can now handle MultiImageView (each frame is recorded in the same file) and 3D images (last dimension is unstacked, and each slice is recorded in the same file)

IOF-233: Optimization of Tiff reader

Tiff reader can now return an ImageView (one frame) or a MultiImageView (multi-frame). In the case "multi-frame", only the first frame of the file will be read until frameCount method is called. So as to not systematically read the whole file (Improvement for HTTP access)

  • PNG writer can handle 3D Image but only if planar ((2D + CHANNEL dimension)
  • RAW writer can now handle MultiImageView (with frames of same shape and type)
  • TIFF writer can now handle MultiImageView (each frame is recorded in the same file) and 3D images (last dimension is unstacked, and each slice is recorded in the same file)

IOF 0.21 - 2021-03-04

IOF-206: update IOFormat code and API according to new IOLink Storage API

IOFormat now uses a new version of IOPLugin, so the custom plugin must be adapted accordingly.

Little API changes:

  • IOFormat::getView: first argument from Storage to DataAccess
  • IOFormat::openWriter: second argument from OStreamStorage to WriteStreamAccess in both version of the function.
  • IOFormat::save: second argument from OStreamStorage to WriteStreamAccess

IOF-219: remove OSX playform

OSX platform is not supported from now on.

IOF 0.20 - 2021-02-09

IOF-198: updated to IOPlugin 0.5.0, so plugins follow the new API

Big rework of the existing plugins to fit the new IOPlugin API, that enable new features. There should not be big changes with the use of IOFormat itself, but plugins implemented with the previous IOPlugin API will not function properly with IOFormat.

IOF 0.18 - 2020-12-10

IOF-181: Python naming conventions: method names are now lowercase, with words separated by underscores. Example: IOFormat.getView() is renamed into IOFormat.get_view().

IOF 0.17 - 2020-11-17

No changes

IOF 0.16 - 2020-10-15

IOF-164: Clarify logger use

  • IOPlugin library is not public anymore to clarify IOFormat logger use

IOF-121: PNG writer accept planar images

  • void saveImage(std::shared_ptr<iolink::ReadImageView> view, const std::string& pathFile) is renamed save and takes a View as first argument
  • void saveImage(std::shared_ptr<iolink::View> view, std::shared_ptr<iolink::OStreamStorage> dst, const std::string& format) is renamed save and takes a View as first argument

Following methods take a View as first argument instead of a ReadImageView:

  • static std::shared_ptr<iolink::Writer> openWriter(std::shared_ptr<iolink::View> view, const std::string& pathFile)
  • static std::shared_ptr<iolink::Writer> openWriter(std::shared_ptr<iolink::View> view, std::shared_ptr<iolink::OStreamStorage> dst, const std::string& format)
  • static std::shared_ptr<iolink::Writer> openWriter(std::shared_ptr<iolink::View> view, std::shared_ptr<iolink::OStreamStorage> dst, const std::string& format, const std::string& plugin)

IOF 0.15 - 2020-09-17

No changes

IOF 0.14 - 2020-08-20

IOF-157: Removed Raw Writer factory

IOF-147: Helper for conversion from extension to format

  • Added std::string formatFromExtension(const std::string& extension) method into IOFormat api

IOF 0.13 - 2020-07-23

IOF-139: Writer factories are removed

  • Removed MrcWriterFactory
  • Removed JpegWriterFactory
  • Removed PngWriterFactory

IOF-135: rework logging system to match IOLink's one

  • Remove void IOFormat::setLogLevel
  • Remove void IOFormat::setFlushLevel
  • Add void Logger::init(LogeLevel level)
  • Add LogLevel Logger::logLevel()

IOL-141: new APIs to create writers

  • Added static std::shared_ptr<iolink::Writer> openWriter(std::shared_ptr<iolink::ReadImageView> image, const std::string& pathFile); to open a writer used to write an image view into a file.
  • Added static std::shared_ptr<iolink::Writer> openWriter(std::shared_ptr<iolink::ReadImageView> image, std::shared_ptr<iolink::OStreamStorage> dst, const std::string& format); to open a writer used to write an image view into an output stream.
  • Added static std::shared_ptr<iolink::Writer> openWriter(std::shared_ptr<iolink::ReadImageView> image, std::shared_ptr<iolink::OStreamStorage> dst, const std::string& format, const std::string& plugin); to open a writer used to write an image view into an output stream

IOF 0.12 - 2020-06-25

No change

IOF 0.11 - 2020-05-28

No change