HEIF Plugin

Provides HEIFDecoder and HEIFEncoder.

This plugin uses Java 22's new Foreign Function & Memory API ("Panama") to call into libheif. It supports HEIC (HEVC/H.265)-within-HEIF and AVIF (AV1).

Libheif is not included with this plugin and must be provided separately. Some OS package managers provide it. The plugin was developed against version 1.18. Newer versions in the 1.x series should work as well, but may not have been tested. If you encounter any problems, please contact us.

Once libheif has been installed, its containing directory must be present on the Java library path. You can either change your library path to include it (by adding the -Djava.library.path VM argument to your config/jvm.options file), or move the library files to one of the directories on that path. Galia logs the Java library path at startup.

Installation

Step 1: Install the plugin

Use the plugin installer:

bin/install_plugin.sh galia-plugin-heif

Alternatively, download the plugin directly and extract it into Galia's plugins directory.

Step 2: Enable HEIFDecoder (optional)

If you'd like to use HEIFDecoder, you may assign it to one or more source formats in your application configuration:

decoder.formats:
  avif: HEIFDecoder
  heif: HEIFDecoder

This is not strictly necessary, but will future-proof your configuration in case you ever install any other plugins that support HEIF, and don't want them to take over.

Step 3: Enable HEIFEncoder (optional)

If you'd like to use HEIFEncoder, you must assign it to one or more variant formats in your application configuration:

encoder.formats:
  avif: HEIFEncoder
  heif: HEIFEncoder

Step 4: Configure HEIFEncoder (optional)

If you'd like to override any of the default settings used by HEIFEncoder, copy the keys from config.yml.sample into your application configuration file and edit them there.