Introduction to my Project with GSoC

May 24, 2026

Hello, in this post, I will write a little about my project for Google Summer of Code (GSoC) 2026. GSoC is a program meant to introduce new contributors into open source software development (https://summerofcode.withgoogle.com/). I will be participating with the LibreOffice project. LibreOffice is an office suite that has programs like a word processor, a spreadsheet program, and a presentation program. These types of programs may be familiar to people who have used other office suites like Microsoft Office or Google Workpace.

My project will add support for the JPEG XL image format to LibreOffice. Currently, attaching a JPEG XL image to a document will result in the image being attached as a generic file (filed as tdf#156931 in LibreOffice's bug tracker Bugzilla). This project will solve this bug, including adding relevant documentation and automated tests as appropriate.

JPEG XL supports compression that is claimed to be nearly lossless to the human eye. In addition, it is possible to losslessly transcode some images between JPEG and JPEG XL, enabling compression without losing any data.

Given the storage savings, JPEG XL support will be a useful addition for current users of LibreOffice users. And given the usage of JPEG XL in other programs like some web browsers, this project will also help to maintain compatibility.

Slightly Technical Details

Support for the WebP image format was added in https://gerrit.libreoffice.org/c/core/+/128920. This will be a useful reference when implementing another image format.

Some specific things I noticed when doing a cursory look through of the commit:

  • The vcl/ directory seems to be the appropriate place to add the implementation.
  • vcl/source/filter/ will have a good chunk of the actual implementation, while vcl/qa/cppunit will have some tests.
  • External libraries will be placed in external/.
  • There is a dialog for exporting JPG/JPEG, WEBP, and other formats in svtools/source/filter/exportdialog.cxx. This should be updated to include JPEG XL.

(The source code is viewable online; the relevant project/repository here is "core".)

In addition, the libjxl library can be used for implementation or as a reference.

Of course, unexpected implementation issues may come up, and I will be looking to my mentor and other members of the LibreOffice community for possible assistance in this case.

Finally

I look forward to contributing to LibreOffice and collaborating with other members of the community, during the summer and potentially beyond.

https://solisj.dev/posts/feed.xml