Skip to content

Releases: bigcat88/pillow_heif

v0.9.1

02 Jan 13:32
dd0ebb0

Choose a tag to compare

Changed

  • info["nclx_profile"] changed type from bytes(format of which was not described) to dict.
  • Drop support for Python 3.6, PyPy 3.7. Added PyPy 3.9 wheels.
  • convert_to method: RGBa to RGB mode support was removed(last Pillow supports it). #67

Fixed

  • Small memory leak when opening image with nclx color profile. #64

v0.9.0

15 Dec 21:29
d142345

Choose a tag to compare

Changed

  • Minimum supported version of libheif to build from source is 1.13.0
  • Minimum required Pillow version increased from 6.2.0 to 8.3.0, getxmp is used from Pillow now. #55
  • options() was reworked. Added new DECODE_THREADS option. #57

Fixed

  • Added ability to save method to accept exif as PIL.Image.Exif class. #51
  • Linux, Windows: fixed disabled multithreading for image decode. Added tests for this. Thanks to @jtressle #53
  • Linux: building from source has been reworked to no longer require autoconf, automake and pkg-config.

v0.8.0

20 Nov 14:37
67b924a

Choose a tag to compare

Added

  • Armv7: wheels for Alpine 3.14+ with musllinux_1_2_armv7l tag.

Changed

  • libheif updated to 1.14.0 version
  • Ability to pass enc_params for save as List[Tuple[str, str]] was removed, now it accepts only Dict.
  • Deprecated options().ctx_in_memory was removed(default behaviour do not change).
  • Deprecated options().strict was removed(default behaviour do not change).
  • Deprecated check, open, read, check_heif functions was removed.
  • scale method marked as deprecated.

Fixed

  • Values in enc_params for save can now be of type int or float and will be automatically converted to str.
  • Armv7: wheels supports Debian 10(was only Debian 11+\Ubuntu 20.04+ previously) with manylinux_2_28_armv7l tag.
  • Armv7: wheels sizes decreased significantly(almost in 3x).

v0.7.2

31 Oct 17:23
3e41f4f

Choose a tag to compare

Fixed

  • (HeifImagePlugin) register proper mimetype for HEIF format. #47
  • (HeifImagePlugin) decode image even when EXIF data is corrupted. #48
  • (HeifImagePlugin) correct processing of EXIF that do not start with b'EXIF' (Pillow 9.3.0). #46

v0.7.1

28 Oct 15:22
5e27583

Choose a tag to compare

Added

  • Support for images with a premultiplied alpha channel (Pillow does not fully support these).
  • (Heif) premultiplied_alpha read-write property.
  • (Heif) to_pillow method to HeifFile class.
  • (Heif) RGBA;16 -> RGBA conversion.
  • (Heif) RGBa -> RGB conversion.

Changed

  • libaom updated from 3.4.0 to 3.5.0 version. changelog
  • libde265 updated from 1.0.8 to 1.0.9.
  • (Heif) The get_file_mimetype function has been reworked and is now written in python.
  • (Heif) The is_supported function has been reworked and is now written in python.
  • options().strict option marked as deprecated and will be removed in 0.8.0.
  • (Heif) check_heiffunction marked as deprecated.

Fixed

  • (Heif) convert_to should do nothing if the target mode is already the current image mode.
  • (AvifImagePlugin) do not register or accept .avifs files, libheif does not support them.
  • Images in CMYK mode will be converted for RGBA mode during saving instead of throwing KeyError exception.

v0.7.0

11 Sep 19:50
9ad6dfe

Choose a tag to compare

This release is fully compatible with previous versions.

Changed

  • libheif updated to version 1.13.0
  • License for project itself changed to Apache 2.0

v0.6.1

20 Aug 21:12
baa6bad

Choose a tag to compare

This release contains security and bug fixes.

Changed

  • Speed boost for AVIF encoding(+50%). commit

Fixed

v0.6.0

05 Aug 20:31
9035087

Choose a tag to compare

This release is fully compatible with previous versions if you was not using AVIF decoding before.

Added

  • (Heif) save method accepts optional parameter format. If format="AVIF" output file will be encoded in h264 format using AOM.
  • AvifImagePlugin introduced. Usage: register_avif_opener() or import pillow_heif.AvifImagePlugin
  • After registering AvifImagePlugin you can work with .avif files the same way you do with .heic

Changed

  • (HeifImagePlugin) By default not accepts .avif files, register AvifImagePlugin if you need that. If you use pillow_avif then do not =)
  • options().hevc_enc property was removed.
  • options().avif property was removed.

Fixed

  • Better compatibility with pillow_avif package.
  • (Linux) Wheels size decreased significantly(almost in 2x).
  • (Linux) Building from source is a bit simpler, you can build it with your custom libraries from now.
  • (Linux) Great speed boost for encoding with new build type(it is as fast now as in Windows builds).

v0.5.1

30 Jul 17:51
c4ec1cd

Choose a tag to compare

This release is fully compatible with 0.5.0 version.

Added

  • chroma=4xx optional subsampling parameter for save. Equivalent to enc_params=[("chroma", "4xx")] in old versions.

Changed

  • enc_params for save changed type from List[Tuple[str, str]] to Dict. Old code will still work, but marked as deprecated.
  • libheif_info now returns also bundled versions of x265 and aom.
  • options().avif marked as deprecated. Starting from 0.6.0 version to register an AVIF plugin there will be a separate function and it will be disabled by default.
  • options().hevc_enc marked as deprecated and will be removed in 0.6.0.

Fixed

  • Rare situation when exif orientation is 1 and xmp orientation different from 1 present at same time.
  • XMP tags orientation that are generated by exiftool in some cases.
  • Updated libaom on Linux and Windows from 3.3.0 to 3.4.0 version. MacOS builds had already that version in 0.5.0.
  • Pillow plugin now does not register save methods for HEIF format if build does not contains HEIF encoder(for custom builds from source).
  • Slightly speed optimizations for working in a Pillow plugin mode.

v0.5.0

21 Jul 18:29
61f7258

Choose a tag to compare

Thumbnails was reworked, if you was not use them before, then this release is fully compatible with 0.4.0 version.
It is a final API release, no more further changes to existing API are planned, only bugfixes if any and etc.

Added

  • (Heif, HeifImagePlugin) thumbnail function, docs for it.
  • __numpy_array__ property to HeifFile
  • convert_to method to HeifFile

Changed

  • Wheels now are in ABI3 format for CPython(cp3x-abi3-xxx.whl), 3x less size on PyPi.
  • (Heif) to_pillow method, now fills metadata from an original image if was called for thumbnails.
  • (HeifImagePlugin) During open current frame in multi frame images are set to index of Primary Image.
  • (Heif) add_thumbnails method moved from HeifFile/HeifImage to separate file and now can accept a PIL Image.

Fixed

  • (HeifImagePlugin) Nice speed up for reading images having thumbnails in a Pillow plugin mode.
  • (HeifImagePlugin) XMP metadata save from TIFF and JPEG.
  • (HeifImagePlugin) EXIF metadata save from TIFF(only for Pillow >= 9.2).
  • (HeifImagePlugin) - Not to change index of a current frame during saving multi frame images.