JPEG2000 GdkPixbuf loader

Nichlas Severinsen cbd8c7a9c7 Update meson.build & tests/meson.build hai 9 meses
src cbd8c7a9c7 Update meson.build & tests/meson.build hai 9 meses
tests cbd8c7a9c7 Update meson.build & tests/meson.build hai 9 meses
.editorconfig d2d28def6d Initial commit %!s(int64=4) %!d(string=hai) anos
.gitignore 39ef90d7bc Codestream support, partial gray colorspace support %!s(int64=4) %!d(string=hai) anos
CHANGELOG.md cbd8c7a9c7 Update meson.build & tests/meson.build hai 9 meses
COPYING d2d28def6d Initial commit %!s(int64=4) %!d(string=hai) anos
LICENSE.txt d2d28def6d Initial commit %!s(int64=4) %!d(string=hai) anos
README.md cbd8c7a9c7 Update meson.build & tests/meson.build hai 9 meses
jp2-pixbuf.thumbnailer.in 1b6873507e Install a thumbnailer file %!s(int64=4) %!d(string=hai) anos
meson.build cbd8c7a9c7 Update meson.build & tests/meson.build hai 9 meses
meson_options.txt d2d28def6d Initial commit %!s(int64=4) %!d(string=hai) anos

README.md

JPEG2000 Pixbuf Loader

This is a GdkPixbuf loader module for JPEG2000. It uses OpenJPEG to load JPEG2000 images as linear buffers in memory.

Note: by default there's already some JPEG2000 support in GdkPixbuf, but that uses the JasPer image library, which only support certain parts of the JPEG2000 standard, meaning certain images don't work.

Installing

Option 1. Compiling

meson build && cd build && ninja install

Alternatively, specifically for arch:

meson --prefix=/usr --buildtype=plain build && meson compile -C build && sudo meson install -C build

Option 2. Arch linux / AUR:

sudo aura -A jp2-pixbuf-loader -x

Copying / License

Copyright © 2020 - 2024 Nichlas Severinsen

This loader module is licensed under the GNU Lesser General Public License, version 2.1; LGPLv2.1. also see COPYING

OpenJPEG is licensed under the 2-clauses BSD License.

Development

Debug

Build project then generate loaders.cache.in:

gdk-pixbuf-query-loaders libpixbufloader-jp2.so > ../tests/loaders.cache.in

Run tests:

ninja test or meson test --print-errorlogs

Run tests with gdb:

meson test --gdb

Run tests with valgrind:

meson test --verbose --print-errorlogs --wrap='valgrind --leak-check=full'

Run a specific test:

meson test basic --print-errorlogs

Todo

  • Better tests
  • Tests and testfiles for sYCC422 and sYCC444
  • Support for e-YCC? Need testfiles
  • Support for cielab? Need testfiles
  • icc profile?
  • Implement image_save;
  • Implement image_stop_load;
  • Implement image_begin_load;
  • Implement image_load_increment;
  • Implement image_save_to_callback;