JXL: Resolution and metadata support via EXIF

- Added a class to read and write minimal exif metadata.
- JXL plugin uses EXIF metadata to load/save the resolution of the image (like GIMP).
- JXL plugin uses EXIF metadata to set/store text metadata and date/time.
- Enable info display in Dolphin (JXL File -> Properties -> Details on a JXL file, see image below).
- Enabled read test to check also image metadata and resolution.

![_52C044E4-1BA9-4D84-AC0A-B834CDAF72D8_](/uploads/f1649c2b506bf61a5f5488da0d4a4534/_52C044E4-1BA9-4D84-AC0A-B834CDAF72D8_.png){width=401 height=357}
This commit is contained in:
Mirco Miranda
2025-01-15 06:12:07 +00:00
parent f39ca9dc9b
commit ae00c110f2
11 changed files with 1821 additions and 79 deletions

View File

@ -19,9 +19,15 @@ macro(kimageformats_read_tests)
endif()
foreach(_testname ${KIF_RT_UNPARSED_ARGUMENTS})
string(REGEX MATCH "-skipoptional" _is_skip_optional "${_testname}")
unset(skip_optional_arg)
if (_is_skip_optional)
set(skip_optional_arg "--skip-optional-tests")
string(REGEX REPLACE "-skipoptional$" "" _testname "${_testname}")
endif()
add_test(
NAME kimageformats-read-${_testname}
COMMAND readtest ${_fuzzarg} ${_testname}
COMMAND readtest ${skip_optional_arg} ${_fuzzarg} ${_testname}
)
endforeach(_testname)
endmacro()
@ -132,9 +138,15 @@ if (OpenJPEG_FOUND)
endif()
if (LibJXL_FOUND AND LibJXLThreads_FOUND)
kimageformats_read_tests(
jxl
)
if(LibJXL_VERSION VERSION_GREATER_EQUAL "0.11.0")
kimageformats_read_tests(
jxl
)
else()
kimageformats_read_tests(
jxl-skipoptional
)
endif()
kimageformats_write_tests(
jxl-nodatacheck-lossless
)