Skip to content

Latest commit

 

History

History
935 lines (678 loc) · 54.3 KB

CHANGELOG.md

File metadata and controls

935 lines (678 loc) · 54.3 KB

Changelog / release notes

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v2.34.0 (2024-02-12)

Feature

v2.33.1 (2023-12-11)

Fix

  • Replace mktemp with mkstemp when caching to disk for legacy plugins (#1055) (12b1ad2)

Other

v2.33.0 (2023-11-20)

Fix

Feature

v2.32.0 (2023-11-06)

Feature

v2.31.6 (2023-10-23)

Fix

  • Pin pillow below v10.1 to avoid breaking changes (#1046) (c97aa5e)

v2.31.5 (2023-10-02)

Fix

  • Raise warning instead of error when using fps in pillow (#1039) (520fe62)

v2.31.4 (2023-09-25)

Fix

  • Consistently load GIF frames using the same pixel format (#1036) (f4fc7f5)

v2.31.3 (2023-09-04)

Fix

  • Refactor resolution metadata reading for TIFF and avoid failing on missing data (#1031) (6cd3a42)

Other

v2.31.2 (2023-08-26)

Fix

Other

v2.31.1 (2023-06-12)

Fix

  • Match ExIf orientation tag behavior to ExIf spec in pillow(#983) (953029b)

v2.31.0 (2023-06-05)

Fix

  • Fix pilmode kwarg for get_reader/get_writer (#994) (21039b2)

Feature

  • Decode gray 16-bit PNG as uint16 (not int32) if pillow allows (#987) (95bb89d)

v2.30.0 (2023-05-29)

Feature

  • SPE plugin: Support new SDT-control metadata (#989) (c93536c)

Other

  • Remove standard images from built package (#988) (6288f19)

v2.29.0 (2023-05-23)

Feature

v2.28.1 (2023-05-01)

Fix

  • Avoid exception when n_frames is not set by Pillow (d03db0f)
  • Forward get_reader/get_writer kwargs to read/write (#979) (a82037e)
  • Allow incremental write in pillow (#978) (2ed8fb4)
  • Add writeable_output=True to pillow plugin to ensure data is writable by default (#976) (6412c98)

Other

v2.28.0 (2023-04-24)

Feature

v2.27.0 (2023-03-27)

Fix

  • Update FreeImage backend to v3.18.0 on Windows (#960) (08d3bda)

Feature

v2.26.1 (2023-03-20)

Fix

  • Consistently apply color palettes by default (#955) (938de2d)
  • Allow ffmpeg filters to terminate iter (#954) (a463899)
  • Handle unknown video duration in pyav metadata (#937) (06a1c0d)

Other

v2.26.0 (2023-02-27)

Feature

  • Collection of small improvements to pyav (#939) (b0dc210)

v2.25.1 (2023-02-13)

Fix

  • Format hint test doesn't need to establish a connection (#941) (b7a0f35)

Other

v2.25.0 (2023-01-23)

Feature

v2.24.0 (2023-01-09)

Feature

Other

v2.23.0 (2022-12-19)

Feature

Other

  • Exclude py3.11 on windows (#917) (c57e31c)
  • GitHub Actions add Python 3.11 to the testing (#916) (8d49551)
  • Add migration instructions for as_gray in new pillow plugin. (#913) (b3b040a)

v2.22.4 (2022-11-07)

Fix

  • Fix silent failure when writing gray images with explicit color channel using pillow (#906) (a075c17)
  • Ffmpeg supports .h264 extension (#901) (7571ea9)
  • Avoid webcam hang on MacOS (#899) (019069f)

Other

v2.22.3 (2022-10-31)

Fix

  • Support compression and compressionargs in tifffile plugin (#894) (3773da4)

v2.22.2 (2022-10-16)

Fix

  • Make legacy FormatManager skip uninstalled plugins (#888) (76a87c1)

Other

  • Remove unneeded image_mode references (#816) (eeafb8d)
  • Remove xcode reference (dead link) (d1c3e5e)

v2.22.1 (2022-10-03)

Fix

  • Raise ImportError when iio-ffmpeg is missing (#880) (e6e7ff4)

Other

v2.22.0 (2022-09-19)

Feature

  • Pyav API for procedural video writing (#853) (acbcb64)

v2.21.3 (2022-09-12)

Fix

Other

v2.21.2 (2022-08-29)

Fix

Other

v2.21.1 (2022-08-08)

Fix

  • Seeking to last frame caused EoF in pyav (#855) (7ff7f02)

v2.21.0 (2022-08-01)

Fix

  • Write single TIFF page for single RGB image (#851) (0f04bc9)

Feature

Other

v2.20.0 (2022-07-25)

Fix

  • Expose frame-level metadata and duration in pyav (#839) (05fcf2c)

Feature

Other

v2.19.5 (2022-07-18)

Fix

Other

v2.19.4 (2022-07-11)

Fix

  • Resolve infinite recursion in python 3.11 (and add CI for pypy-3.9) (#826) (301f941)
  • Include PYI files in package (#825) (fff16fb)

Other

v2.19.3 (2022-05-30)

Fix

Other

v2.19.2 (2022-05-16)

Fix

Other

v2.19.1 (2022-05-09)

Fix

  • Reset request when iterating over plugins (#792) (46a49c4)
  • Rename format_hint to extension and prefer it over actual file extensions (#807) (4830f15)

Other

v2.19.0 (2022-05-02)

Feature

v2.18.0 (2022-04-25)

Fix

  • Do not pass optional kwargs by position in tifffile (#794) (512fe11)
  • Ensure pts increases even if pyav doesn't flush the frame immediately (#787) (5b74e8d)

Feature

Other

v2.17.0 (2022-04-18)

Feature

Other

v2.16.2 (2022-04-11)

Fix

  • Handle PIL paletts with <256 color palettes (#775) (309242d)
  • Set spacing to None by default (#773) (1b93434)

Other

v2.16.1 (2022-02-28)

Fix

  • Ignore TIFF XResolution or YResolution with 0 in the denominator. (#753) (6b44a1b)

Other

v2.16.0 (2022-02-14)

Fix

  • Read metadata of current frame when iterating + APNG fast path (#750) (87f290a)

Feature

Other

v2.15.0 (2022-02-07)

Fix

Feature

Other

v2.14.1 (2022-01-24)

Fix

  • Avoid raw bytes in exception message (#733) (6252636)

v2.14.0 (2022-01-20)

Fix

Feature

  • Allow mode=None when writing with pillow (#722) (7be2712)

Other

v2.13.5 (2021-12-23)

Fix

  • Clean up PillowPlugin destructor (#714) (104171b)
  • Close standard streams after webcam access (#711) (9c434e0)

v2.13.4 (2021-12-21)

Fix

Documentation

v2.13.3 (2021-12-08)

Fix

  • Allow TIFF to write bytes and file objects (#704) (9c765c3)

v2.13.2 (2021-12-07)

Fix

v2.13.1 (2021-12-01)

Fix

v2.13.0 (2021-11-29)

Documentation

v2.12.0 (2021-11-24)

Feature

  • Allow plugin objects in plugin kwarg (#689) (8f0f689)

v2.11.1 (2021-11-20)

Fix

  • Fix BytesIO regression for legacy pillow (#688) (924e1c5)

v2.11.0 (2021-11-18)

Feature

  • Choose plugin based on extension and plugin lazy-import (#680) (bdbe699)

v2.10.5 (2021-11-17)

Fix

  • Resolve regression on imageJ TIFF hyperstacks (#682) (7dc9b25)

v2.10.4 (2021-11-13)

Fix

  • Consistently handle file opening/closing (#673) (b852f45)

Documentation

v2.10.3 (2021-11-06)

Fix

  • Fix file extension bug when filename contains '#'. (#678) (f3fa631)

v2.10.2 (2021-11-05)

Fix

Documentation

v2.10.1 (2021-10-27)

Fix

  • Install ImageIO dependencies during release wheel build (#671) (f1ee22a)

v2.10.0 (2021-10-27)

Feature

  • Allow pillow to write/encode to byte strings (#669) (b5df806)
  • Add CD pipeline (#667) (6dce3ab)
  • Fail PIL write if extension isnt supported (0dc33d3)
  • Make imopen use core.Request (c51fdb0)

Fix

Documentation

[2.9.0] - 2020-07-06

Fixed

  • More robust loading of FEI SEM data (#529 by jon-lab).
  • Fix webcam not working on Win10 (#525).

Added

  • Add a few standard images useful to 3D visualization.
  • The timeout used in HTTP requests can now be set with an environment variable (#534 by Johann Neuhauser).
  • The DICOM plugin can now used gdcm for compressed transfer formats.
  • Better support for itk/sitk plugins (#530 by Jonathan Daniel).
  • Test coverage and CI for ARM (#518 by odidev).

[2.8.0] - 2020-02-19

(skipping version 2.7 to avoid confusion with Python v2.7.)

Mentioning here for completeness: imageio-ffmpeg 0.4.0 was also recently released, which fixes several (stability) issues for video io.

Fixed

  • Better support for reading from http (some formats needed seek, we now deal with that).
  • Make Reader.__len__ work again when length is inf (stream/unknown).
  • Set -framerate input param for ffmpeg when using webcam, fixing webcam support on macOS.
  • Fix for handling TIFF predictor value of 1 (NONE) (by Milos Komarcevic).
  • Fix false-positive zip detection (by Vsevolod Poletaev).
  • Fix SPE filesize check for SPE v3 (by Antony Lee).
  • Fix that SPE plugin failed on spe3 files with dtype uint32 (by Michael Schneider).
  • Fix deprecation warning for numpy.

Added

  • Expose SPE3 xml footer (by Antony Lee).
  • Expose TIFF predictor tag for reading and writing (by Milos Komarcevic).
  • Improve error message regarding modes.

Removed

  • Drop support for Python 2.7 and Python 3.4.
  • Drop support for AVbin, use ffmpeg instead.

[2.6.1] - 2019-10-08

  • Fixed potential error when creating a new appdata directory.

[2.6.0] - 2019-10-07

This will likely be the last release to support Python 2.7.

Fixed:

  • Fixed a security vulnerability for Windows users that have dcmtk installed, and where an attacker can set the filename.
  • Fixed bug in image_as_uint (#451 by clintg6).
  • Fix that only one webcam could be used when two cameras are connected that have the same name.
  • Prevent paletted image with transparency to be converted to grayscale.

Added:

  • Optimise 16-bit PNG write performance for newer versions of Pillow (#440 by Ariel Ladegaard).
  • More flexible setting of memory limit in mimread and mvolread (#442 by Chris Barnes).
  • Support for ASCII PNM files (#447 by Tobias Baumann).
  • Improved support for JPEG2000 (can now provide parameters) (#456 by Pawel Korus).
  • Added support for compressed FITS images (#458 by Joe Singleton).
  • Improve imageio import time by avoiding pkg_resources import (#462 by Mark Harfouche).
  • Added example for compressing GIFs using pygifsicle (#481 by Luca Cappelletti).

[2.5.0] - 2019-02-06

The ffmpeg plugin has been refactored:

  • The core has been moved to a new library: imageio-ffmpeg.
  • That library provides platform-specific wheels that includes ffmpeg, so just pip install imageio-ffmpeg instead of the download step.
  • Note that this new library is py3k only.
  • Termination of ffmpeg subprocess is now more reliable.
  • The reader of the ffmpeg plugin now always reports inf as the number of frames. Use reader.count_frames() to get the actual number, or estimate it from the fps and duration in the meta data.
  • Removed CannotReadFrameError.

Other changes:

  • The avbin plugin has been depreacted and will be removed in a future version.
  • Imnproved speed for PIL and FFMPEG plugsins by avoiding memory copies.
  • Update the included tiffile library.
  • Support for SimpleITK.
  • Speed up tiffile plugin when writing to something else than a filename.
  • Fix that writing to a file object would not work for some plugins.
  • Can now pass image data to the write functions as anything that resolves to a numpy array with a numeric dtype.
  • One can now read from a memoryview.
  • Fix error related to paletted BMP with the Pillow plugin.
  • Improved logging.

[2.4.1] - 2018-09-06

  • Fix installation issue on flavors of Ubuntu 14.04 /w Python 2.7 (#378).
  • Use np.frombuffer instead of np.fromstring in some cases.

[2.4.0] - 2018-09-06

  • Renamed Image class to Array and add documentation for this ndarray subclass.
  • Reading from HTTP and zipfiles has been improved and better documented.
  • Improvements to reading and writing of Tiff metadata (by Lukas Schrangl).
  • Better dealing of tifffile dependencies on Python 2.7 (#330 and #337 by Chris Barnes).
  • Reader for the SPE format (#358 by lschr).
  • Better termination of FFMPEG when reading from webcam (#346 by Dennis Vang).
  • FFMPEG support for reading 16bit videos (#342 by Peter Minin).

[2.3.0] - 2018-03-20

  • Console entry points for binary downloads (by Paul Mueller).
  • Dropped support for Python 2.6, 3.2 and 3.3.
  • Reading images from a url can now also have "suffixes" like "?query=foo".
  • The mimwrite() and mvolwrite() functions also work with generators.
  • Fix rounding of float data.
  • New Lytro plugin (by Maximilian Schambach).
  • New plugin based on BSDF format (for images/volumes and series thereof, including support for random access and streaming).
  • TIFFFILE update to latest tifffile.py implementation.
  • DICOM fix that could fail in the presence of a directory.
  • PILLOW improvements to API to provide same functionality as Scipy's imread().
  • PILLOW fix for Gamma correction (#302).
  • PILLOW now allows JPEG images to be read from a url.
  • PILLOW fix determining of grayscale in 1 bit paletted images.
  • FFMPEG improved device name parsing (by Dennis van Gerwen).
  • FFMPEG now allows more control of position of extra parameters.
  • FFMPEG improved parsing of fps from ffmpeg info.
  • FFMPEG reader allows has fps argument to force reading at a specific FPS.

[2.2.0] - 2017-05-25

  • New format for grabbing screenshots (for Windows and OS X).
  • New format for grabbing image data from clipboard (Window only).
  • Multipage Tiff files can now be read using volread() to obtain the image data as one array.
  • Updated the ffmpeg executables that imageio provides.
  • The ffmpeg format can now also use the ffmpeg exe provided by the ffmpeg conda package (conda install ffmpeg -c conda-forge).
  • Fixes to ffmpeg format in general.
  • Improve docs and rounding in animated GIF duration.
  • Fix for setting number of loops in animated GIF.
  • Fixes for transparent images in Pillow.
  • Fixes for float indexing that is disallowed in new Numpy (Freeimage plugin).
  • Fix for using missing close() on Pillow images.
  • Updated version of tiffile plugin.

[2.1.2] - 2017-02-02

A bugfix release:

  • Fix animated gif writer that was broken in newer Pillow version.
  • FFMPEG plugin improvements: more reliable fps detection, can deal with missing FPS, more reliable subprocess termination,
  • Mimread allows a few missing frames to better deal with certain video files.
  • Allow question marks in url's.
  • Allow Pillow plugin to read remote files by "enabling" seek() and tell().
  • Use invoke to run development tasks instead of custom "make" module.

[2.1.1] - 2016-12-24

Minor improvements related to Debian packaging.

[2.1.0] - 2016-12-22

  • Standard images now have to be specified using e.g. imageio.imread('imageio:chelsea.png') to be more explicit about being a special case and potentially involving a download.
  • Improvements and fixes for the ffmpeg plugin (including improved seeking).
  • Several tweaks to the tests and setup script to make it pass the Debian build system.

[2.0.0] - 2016-12-10

This release introduces a new plugin based on Pillow, which will take care of the "common formats" like PNG and JPEG, which was previously the role of the FreeImage plugin. The latter is still available but the FreeImage library is no longer distributed by default.

  • New Pillow plugin to privide the common formats.
  • FreeImage plugin gets lower priority w.r.t. resolving a format.
  • No more automatic downloading of libraries and executable (for FreeImage, FFMPEG and AVBIN plugins).
  • Pillow plugin comes with a format to read/write animated GIF to supersede the one provided by FreeImage.
  • Various improvements/fixes to the ffmpeg plugin.
  • Fixes and improvements of the DICOM plugin.
  • Better support of exr images via FreeImage (by Joel Nises).
  • New FEI format (for images produced by the FEI SEM microscope).

[1.6.0] - 2016-09-19

  • Got rid of Lena image because it can be regarded offensive and is not (explicitly) publicly licensed.
  • Fix issue with ffmpeg reader being slow on particular systems (#152).
  • Tiff plugin updated.
  • Add Tiff resolution support (Antony Lee).
  • Support for 16bit PNG's (#150, by OrganicIrradiation).
  • Fixes to ffmpeg plugin (#149, #145, #129).
  • Fix in using IMAGEIO_FREEIMAGE_LIB (#141, by Radomirs Cirskis)
  • Better ffmpeg verbosity and exe detection ( #138, #139, by Tim D. Smith).

[1.5] - 2016-01-31

  • Freeimage conda package (in main channel) is updated and works on all major OS's.
  • Conda install imageio!
  • Fix bug where the ffmpeg plugin fails on certain video files (#131).
  • Fix how dicom uses dcmtk for JPEG compressed files.

[1.4.0] - 2015-11-18

  • Various improvements to the ffmpeg plugin.
  • New tiffile plugin that should support most scientific formats.
  • New simpleITK wrapper plugin.
  • New gdal plugin.
  • Freeimage plugin can load freeimage lib provided by conda.
  • Dicom plugin improved handling of compressed files.
  • Most plugins adopt lazy loading to keep imageio lean, fast, and scalable.
  • We now build wheels for Pypi.
  • Travis also tests Python 3.5.

[1.3.0] - 2015-07-02

This release features several fixes and small improvements, especially to the ffmpeg plugin.

  • Fix 'FrameTime' in first frame of GIF image (#90)
  • Fix that writing video could freeze on Windows (#84)
  • Fix that ffmpeg process was sometimes not closed correctly (#79)
  • Also protect user from clogging the machine for mvolread (#89)
  • Better support for platforms other than Win/Linux/OSX (#87 )
  • Support for reading from webcam on OSX (#83, #85)
  • Support for dpx via the ffmpeg plugin (#81)
  • Support for wmv via the ffmpeg plugin (#83)
  • The ffmpeg plugin allows specifying pixelformat. The new default is more widely supported (#83)
  • Allow passing additional arguments to ffmpeg command (#83)
  • Quality of ffmpeg output now set via quality param instead of bitrate (#83)
  • Imageio now has a few (documented) environment variables to specify the locations of plugin libraries/exes (thus preventing them from being automatically downloaded.

[1.2.0] - 2015-02-23

Basically a hotfix release. But some new features were introduced.

  • Fixed that pip-installing would put README.md and other files in sys.prefix.
  • The used ffmpeg exe can be overridden with an environment variable 'IMAGEIO_FFMPEG_EXE'.
  • Relative paths work again.
  • FFMPEG plugin moved to correct timeframe when seeking (thanks Zulko)

[1.1.0] - 2015-02-04

Imageio is now a dependency of Moviepy <https://github.com/Zulko/moviepy/>_, which exposed a few issues to fix. Imageio is now also available as a Debian package (thanks Ghislain!). Furher, we tweaked our function names to be cleared and more consistent (the old names still work).

  • All Xsave() functions are renamed to Xwrite(). Also read() and save() are now get_reader() and get_writer(). The old names are available as aliases (and will be for the foreseable future) for backward compatibility.
  • Protect user from bringing computer in swap-mode by doing e.g. mimread('hunger games.avi').
  • Continuous integration for Windows via Appveyor.
  • All imports are relative, so imageio can be used as a subpackage in a larger project.
  • FFMPEG is the default plugin for reading video (since AVBIN has issues).
  • Better handling on NaN and Inf when converting to uint8.
  • Provide dist packages that include freeimage lib and a few example images.
  • Several changes to ease building into Debian package.
  • Fixed segfault when saving gif (thanks levskaya, #53).
  • Don't fail when userdir is not writable.
  • Gif plugin writer has fps param for consistency with avi/mp4 etc.

[1.0.0] - 2014-11-13

In this release we did a lot of work to push imageio to a new level. The code is now properly tested, and we have several more formats.

The big changes:

  • Many unit tests were written to cover over 95% of the code base. (the core of imageio has 100% coverage).
  • Setup continuous integration (CI) using Travis.
  • Imageio now follows PEP8 style guides (and this is tested with CI).
  • Refactoring of the code base. Resulting in a cleaner namespace.
  • Many improvements to the documementation.

Plugins:

  • The FFMPEG format is now well supported. Binaries are provided.
  • New AVBIN format for more efficient reading of video files.
  • New NPZ format that can store (a series of) arbitrarily shaped numpy arrays.
  • New SWF format (shockwave flash) for lossless animated images.
  • Improvements to the GIF format. The GIF and ANIGIF formats are now merged.

Further:

  • New simple website to act as a front page (http://imageio.github.io).
  • Compatibility with Pypy.
  • We provide a range of :doc:standard images <standardimages> that are automatically downloaded.
  • Binaries (libs and executables) that plugins of imageio uses are now downloaded at runtime, not at build/install time. This simplifies things a lot.
  • freeimage plugin now fully functional on pypy
  • Added utilities for developers (run python make from the repo root).
  • PNG, JPEG, BMP,GIF and other plugins can now handle float data (pixel values are assumed to be between 0 and 1.
  • Imageio now expand the user dir when filename start with '~/'.
  • Many improvements and fixes overall.

[0.5.1] - 2014-06-23

  • DICOM reader closes file after reading pixel data (avoid too-many-open-files error)
  • Support for video data (import and export) via ffmpeg
  • Read images from usb camera via ffmpeg (experimental)

[0.4.1] - 2013-10-26

  • We moved to github!
  • Raise error if URI could not be understood.
  • Small improvement for better error reporting.
  • FIxes in mvolread and DICOM plugin

[0.4.0] - 2013-03-27

Some more thorough testing resulted in several fixes and improvements over the last release.

  • Fixes to reading of meta data in freeimage plugin which could cause errors when reading a file.
  • Support for reading 4 bpp images.
  • The color table for index images is now applied to yield an RGBA image.
  • Basic support for Pypy.
  • Better repr for the Image class.

[0.3.2] - date unknown

  • Fix in dicom reader (RescaleSlope and RescaleIntercept were not found)
  • Fixed that progress indicator made things slow

[0.3.1] - date unknown

  • Fix installation/distribution issue.

[0.3.0] - date unknown

This was a long haul. Implemented several plugins for animation and volumetric data to give an idea of what sort of API's work and which do not.

  • Refactored for more conventional package layout (but importing without installing still supported)
  • Put Reader and Writer classes in the namespace of the format. This makes a format a unified whole, and gets rid of the _get_reader_class and _get_write_class methods (at the cost of some extra indentation).
  • Refactored Reader and Writer classes to come up with a better API for both users as plugins.
  • The Request class acts as a smart bridging object. Therefore all plugins can now read from a zipfile, http/ftp, and bytes. And they don't have to do a thing.
  • Implemented specific BMP, JPEG, PNG, GIF, ICON formats.
  • Implemented animated gif plugin (based on freeimage).
  • Implemented standalone DICOM plugin.

[0.2.3] - date unknown

  • Fixed issue 2 (fail at instal, introduced when implementing freezing)

[0.2.2] - date unknown

  • Improved documentation.
  • Worked on distribution.
  • Freezing should work now.

[0.2.1] - date unknown

  • Introduction of the imageio.help function.
  • Wrote a lot of documentation.
  • Added example (dummy) plugin.

[0.2.0] - date unknown

  • New plugin system implemented after discussions in group.
  • Access to format information.

[0.1.0] - date unknown

  • First version with a preliminary plugin system.