libjxl-0.10.2

Introduction to libjxl

The libjxl package contains the reference implementation of the JPEG XL image format.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

libjxl Dependencies

Required

Brotli-1.1.0, CMake-3.29.2, giflib-5.2.2, highway-1.1.0, Little CMS-2.14, libjpeg-turbo-3.0.1, and libpng-1.6.43

Recommended

Optional

Doxygen-1.10.0 and Graphviz-10.0.1 (for documentation), Gimp-2.10.36 (for the plugin), Java-21.0.2 (for the JAR), libavif-1.0.4, libwebp-1.4.0, OpenEXR

Installation of libjxl

Install libjxl by running the following commands:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr             \
      -D CMAKE_BUILD_TYPE=Release              \
      -D BUILD_TESTING=OFF                     \
      -D BUILD_SHARED_LIBS=ON                  \
      -D JPEGXL_ENABLE_SKCMS=OFF               \
      -D JPEGXL_ENABLE_SJPEG=OFF               \
      -D JPEGXL_ENABLE_PLUGINS=ON              \
      -D JPEGXL_INSTALL_JARDIR=/usr/share/java \
      -G Ninja ..                              &&
ninja

This package does come with a test suite, but it requires gtest, which is not in BLFS.

Now, as the root user:

ninja install &&
gdk-pixbuf-query-loaders --update-cache

Command Explanations

gdk-pixbuf-query-loaders --update-cache: This command regenerates the GDK Pixbuf loader cache so that it is aware of the JPEG-XL loader.

-DBUILD_TESTING=OFF: This parameter disables the tests because they require gtest, which is not in BLFS. If you wish to run the tests and have gtest installed, remove this parameter.

-DBUILD_SHARED_LIBS=ON: This parameter enables building shared versions of the libraries instead of static ones.

-DJPEGXL_ENABLE_SKCMS=OFF: This parameter disables building support for Skia's skcms since it is not necessary for BLFS purposes and requires skcms.

-DJPEGXL_ENABLE_SJPEG=OFF: This parameter disables support for SimpleJPEG since it is not necessary for BLFS purposes and requires sjpeg.

-DJPEGXL_ENABLE_PLUGINS=ON: This parameter enables Plugin support, which creates plugins for Gimp-2.10.36 and gdk-pixbuf-2.42.11 if those packages are installed.

-DJPEGXL_INSTALL_JARDIR=/usr/share/java: This parameter places the JAR file for JPEG XL support in the correct directory if Java-21.0.2 is installed.

Contents

Installed Programs: benchmark_xl, cjxl, djxl, and jxlinfo
Installed Libraries: libjxl.so, libjxl_cms.so, libjxl_extras_codec.so, libjxl_jni.so, libjxl_threads.so, and libpixbufloader-jxl.so (in /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders),
Installed Directories: /usr/include/jxl

Short Descriptions

benchmark_xl

runs performance benchmarks against libjxl

cjxl

compresses images into JPEG XL format

djxl

decompresses images from JPEG XL format into other formats

jxlinfo

displays information about JPEG XL images

libjxl.so

contains the reference implementation of the JPEG XL standard

libjxl_cms.so

contains support for Little CMS in libjxl

libjxl_extras_codec.so

contains additional codec support for JPEG XL images

libjxl_jni.so

contains a Java interface to support JPEG XL on systems where Java-21.0.2 was installed at build time

libjxl_threads.so

contains threading functions for JPEG XL

libpixbufloader-jxl.so

contains a loader for gdk-pixbuf to allow it to load JPEG XL images