Compare commits
27 Commits
v6.7.0-rc1
...
v6.9.0
Author | SHA1 | Date | |
---|---|---|---|
ceb1c46fea | |||
6558b3255a | |||
374961dab4 | |||
b5d8b6638e | |||
92a1752c1f | |||
9f05ecb523 | |||
28c4ceeba9 | |||
f029a4a8ed | |||
56f229a2f1 | |||
72d4c41415 | |||
4923e2ecaa | |||
b645c9c258 | |||
8265b3602b | |||
dbd439bd98 | |||
a664baa9f9 | |||
c38a1a0248 | |||
2ea724c241 | |||
ecfbff8197 | |||
4dedd88c08 | |||
d233e80dbb | |||
799ac37660 | |||
0378bd67e1 | |||
7d696a81d2 | |||
b5d5abe0ea | |||
3f4690d1e9 | |||
ac1006cc66 | |||
97120b2537 |
2
.gitattributes
vendored
@ -11,3 +11,5 @@ autotests/read/hdr/fake_earth.hdr binary
|
||||
autotests/read/hdr/rgb.hdr binary
|
||||
autotests/read/hdr/rgb-landscape.hdr binary
|
||||
autotests/read/hdr/rgb-portrait.hdr binary
|
||||
autotests/read/pfm/testcard_gray_half.phm binary
|
||||
autotests/read/pfm/testcard_rgb_half.phm binary
|
||||
|
@ -5,6 +5,7 @@ include:
|
||||
- project: sysadmin/ci-utilities
|
||||
file:
|
||||
- /gitlab-templates/linux-qt6.yml
|
||||
- /gitlab-templates/alpine-qt6.yml
|
||||
- /gitlab-templates/android-qt6.yml
|
||||
- /gitlab-templates/freebsd-qt6.yml
|
||||
- /gitlab-templates/windows-qt6.yml
|
||||
|
@ -7,3 +7,4 @@ Dependencies:
|
||||
Options:
|
||||
test-before-installing: True
|
||||
require-passing-tests-on: [ 'Linux', 'FreeBSD', 'Windows' ]
|
||||
cmake-options: "-DKIMAGEFORMATS_JXR=ON"
|
||||
|
@ -1,11 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
set(KF_VERSION "6.7.0") # handled by release scripts
|
||||
set(KF_DEP_VERSION "6.7.0") # handled by release scripts
|
||||
set(KF_VERSION "6.9.0") # handled by release scripts
|
||||
set(KF_DEP_VERSION "6.9.0") # handled by release scripts
|
||||
project(KImageFormats VERSION ${KF_VERSION})
|
||||
|
||||
include(FeatureSummary)
|
||||
find_package(ECM 6.7.0 NO_MODULE)
|
||||
find_package(ECM 6.9.0 NO_MODULE)
|
||||
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
|
||||
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||
|
||||
@ -21,7 +21,7 @@ include(ECMDeprecationSettings)
|
||||
include(CheckIncludeFiles)
|
||||
include(FindPkgConfig)
|
||||
|
||||
set(REQUIRED_QT_VERSION 6.5.0)
|
||||
set(REQUIRED_QT_VERSION 6.6.0)
|
||||
find_package(Qt6Gui ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
|
||||
|
||||
find_package(KF6Archive ${KF_DEP_VERSION})
|
||||
@ -72,6 +72,7 @@ option(KIMAGEFORMATS_JXL "Enable plugin for JPEG XL format" ON)
|
||||
if(KIMAGEFORMATS_JXL)
|
||||
pkg_check_modules(LibJXL IMPORTED_TARGET libjxl>=0.7.0)
|
||||
pkg_check_modules(LibJXLThreads IMPORTED_TARGET libjxl_threads>=0.7.0)
|
||||
pkg_check_modules(LibJXLCMS IMPORTED_TARGET libjxl_cms>=0.9.0)
|
||||
endif()
|
||||
add_feature_info(LibJXL LibJXL_FOUND "required for the QImage plugin for JPEG XL images")
|
||||
|
||||
@ -88,8 +89,8 @@ endif()
|
||||
add_feature_info(LibJXR LibJXR_FOUND "required for the QImage plugin for JPEG XR images")
|
||||
|
||||
ecm_set_disabled_deprecation_versions(
|
||||
QT 6.5
|
||||
KF 5.102
|
||||
QT 6.8.0
|
||||
KF 6.8.0
|
||||
)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
18
README.md
@ -19,9 +19,10 @@ The following image formats have read-only support:
|
||||
- Krita (kra)
|
||||
- OpenRaster (ora)
|
||||
- Pixar raster (pxr)
|
||||
- Portable FloatMap (pfm)
|
||||
- Portable FloatMap/HalfMap (pfm, phm)
|
||||
- Photoshop documents (psd, psb, pdd, psdt)
|
||||
- Radiance HDR (hdr)
|
||||
- Scitex CT (sct)
|
||||
- Sun Raster (im1, im8, im24, im32, ras, sun)
|
||||
|
||||
The following image formats have read and write support:
|
||||
@ -78,8 +79,8 @@ For example, native support for CMYK images is only available since Qt 6.8.
|
||||
|
||||
### HDR images
|
||||
|
||||
HDR images are supported via floating point image formats from EXR, HDR, JXR,
|
||||
PFM and PSD plugins.
|
||||
HDR images are supported via floating point image formats from EXR, HDR, JXL,
|
||||
JXR, PFM and PSD plugins.
|
||||
It is important to note that in the past these plugins stripped away HDR
|
||||
information, returning SDR images.
|
||||
|
||||
@ -116,8 +117,8 @@ plugin ('n/a' means no limit, i.e. the limit depends on the format encoding).
|
||||
- EXR: 300,000 x 300,000 pixels
|
||||
- HDR: n/a (large image)
|
||||
- HEIF: n/a
|
||||
- JXL: 65,535 x 65,535 pixels, in any case no larger than 256 megapixels
|
||||
- JXR: n/a
|
||||
- JXL: 262,144 x 262,144 pixels, in any case no larger than 256 megapixels
|
||||
- JXR: n/a, in any case no larger than 4 GB
|
||||
- PCX: 65,535 x 65,535 pixels
|
||||
- PFM: n/a (large image)
|
||||
- PIC: 65,535 x 65,535 pixels
|
||||
@ -127,6 +128,7 @@ plugin ('n/a' means no limit, i.e. the limit depends on the format encoding).
|
||||
- RAS: n/a (large image)
|
||||
- RAW: n/a (depends on the RAW format loaded)
|
||||
- RGB: 65,535 x 65,535 pixels
|
||||
- SCT: 300,000 x 300,000 pixels
|
||||
- TGA: 65,535 x 65,535 pixels
|
||||
- XCF: 300,000 x 300,000 pixels
|
||||
|
||||
@ -157,7 +159,7 @@ been used or the maximum size of the image that can be saved has been limited.
|
||||
PSD plugin loads CMYK, Lab and Multichannel images and converts them to RGB
|
||||
without using the ICC profile.
|
||||
|
||||
JXR and PSD plugins natively support 4-channel CMYK images when compiled
|
||||
JXR, PSD and SCT plugins natively support 4-channel CMYK images when compiled
|
||||
with Qt 6.8+.
|
||||
|
||||
### The HEIF plugin
|
||||
@ -181,6 +183,10 @@ The following defines can be defined in cmake to modify the behavior of the plug
|
||||
**The current version of the plugin limits the image size to 256 megapixels
|
||||
according to feature level 5 of the JXL stream encoding.**
|
||||
|
||||
The following defines can be defined in cmake to modify the behavior of the plugin:
|
||||
- `JXL_HDR_PRESERVATION_DISABLED`: disable floating point images (both read and write) by converting them to UINT16 images. Any HDR data is lost. Note that FP images are always disabled when compiling with libJXL less than v0.9.
|
||||
- `JXL_DECODE_BOXES_DISABLED`: disable reading of metadata (e.g. XMP).
|
||||
|
||||
### The JXR plugin
|
||||
|
||||
**This plugin is disabled by default. It can be enabled with the
|
||||
|
@ -72,6 +72,7 @@ kimageformats_read_tests(
|
||||
qoi
|
||||
ras
|
||||
rgb
|
||||
sct
|
||||
tga
|
||||
)
|
||||
|
||||
|
BIN
autotests/read/jxl/chicken16.jxl
Normal file
BIN
autotests/read/jxl/chicken16.png
Normal file
After Width: | Height: | Size: 115 KiB |
BIN
autotests/read/jxl/chicken8.jxl
Normal file
BIN
autotests/read/jxl/chicken8.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
autotests/read/jxl/rgb_lossless_noprof.jxl
Normal file
BIN
autotests/read/jxl/rgb_lossless_noprof.png
Normal file
After Width: | Height: | Size: 829 KiB |
BIN
autotests/read/jxl/testcard_gray16.jxl
Normal file
BIN
autotests/read/jxl/testcard_gray16.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
autotests/read/jxl/testcard_gray8.jxl
Normal file
BIN
autotests/read/jxl/testcard_gray8.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
autotests/read/jxl/testcard_graya.jxl
Normal file
BIN
autotests/read/jxl/testcard_graya.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
autotests/read/jxl/testcard_rgb_fp16.jxl
Normal file
BIN
autotests/read/jxl/testcard_rgb_fp16.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
autotests/read/jxl/testcard_rgb_fp32.jxl
Normal file
BIN
autotests/read/jxl/testcard_rgb_fp32.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
autotests/read/jxl/testcard_rgba_fp16.jxl
Normal file
21
autotests/read/jxl/testcard_rgba_fp16.jxl.json
Normal file
@ -0,0 +1,21 @@
|
||||
[
|
||||
{
|
||||
"minQtVersion" : "6.2.11",
|
||||
"maxQtVersion" : "6.2.99",
|
||||
"fileName" : "testcard_rgba_fp16.png"
|
||||
},
|
||||
{
|
||||
"minQtVersion" : "6.5.5",
|
||||
"maxQtVersion" : "6.5.99",
|
||||
"fileName" : "testcard_rgba_fp16.png"
|
||||
},
|
||||
{
|
||||
"minQtVersion" : "6.6.2",
|
||||
"fileName" : "testcard_rgba_fp16.png"
|
||||
},
|
||||
{
|
||||
"unsupportedFormat" : true,
|
||||
"comment" : "Skipped due to QTBUG-120614.",
|
||||
"seeAlso" : "https://bugreports.qt.io/browse/QTBUG-120614"
|
||||
}
|
||||
]
|
BIN
autotests/read/jxl/testcard_rgba_fp16.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
autotests/read/jxl/testcard_rgba_fp32.jxl
Normal file
21
autotests/read/jxl/testcard_rgba_fp32.jxl.json
Normal file
@ -0,0 +1,21 @@
|
||||
[
|
||||
{
|
||||
"minQtVersion" : "6.2.11",
|
||||
"maxQtVersion" : "6.2.99",
|
||||
"fileName" : "testcard_rgba_fp32.png"
|
||||
},
|
||||
{
|
||||
"minQtVersion" : "6.5.5",
|
||||
"maxQtVersion" : "6.5.99",
|
||||
"fileName" : "testcard_rgba_fp32.png"
|
||||
},
|
||||
{
|
||||
"minQtVersion" : "6.6.2",
|
||||
"fileName" : "testcard_rgba_fp32.png"
|
||||
},
|
||||
{
|
||||
"unsupportedFormat" : true,
|
||||
"comment" : "Skipped due to QTBUG-120614.",
|
||||
"seeAlso" : "https://bugreports.qt.io/browse/QTBUG-120614"
|
||||
}
|
||||
]
|
BIN
autotests/read/jxl/testcard_rgba_fp32.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
autotests/read/pcx/CGA_FSD.pcx
Normal file
BIN
autotests/read/pcx/CGA_FSD.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
autotests/read/pcx/ICONDOC.pcx
Normal file
BIN
autotests/read/pcx/ICONDOC.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
autotests/read/pcx/dice_rgba.pcx
Normal file
BIN
autotests/read/pcx/dice_rgba.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
autotests/read/pfm/testcard_gray_half.phm
Normal file
BIN
autotests/read/pfm/testcard_gray_half.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
autotests/read/pfm/testcard_rgb_half.phm
Normal file
BIN
autotests/read/pfm/testcard_rgb_half.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
autotests/read/sct/cmyk.sct
Normal file
11
autotests/read/sct/cmyk.sct.json
Normal file
@ -0,0 +1,11 @@
|
||||
[
|
||||
{
|
||||
"minQtVersion" : "6.8.0",
|
||||
"fileName" : "cmyk.tif"
|
||||
},
|
||||
{
|
||||
"maxQtVersion" : "6.7.99",
|
||||
"unsupportedFormat" : true,
|
||||
"comment" : "Qt versions lower than 6.8 do not support CMYK format so this test should be skipped."
|
||||
}
|
||||
]
|
BIN
autotests/read/sct/cmyk.tif
Normal file
BIN
autotests/read/sct/gray.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
autotests/read/sct/gray.sct
Normal file
BIN
autotests/read/sct/rgb.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
autotests/read/sct/rgb.sct
Normal file
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 737 B |
Before Width: | Height: | Size: 743 B After Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 574 B After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
autotests/write/basic/rgba.pcx
Normal file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
autotests/write/format/_images/cmyk8.tif
Normal file
BIN
autotests/write/format/_images/gray16.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
autotests/write/format/_images/indexed.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
autotests/write/format/_images/mono.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
autotests/write/format/_images/rgb16.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
autotests/write/format/_images/rgba16.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
autotests/write/format/avif/Format_A2BGR30_Premultiplied.avif
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
autotests/write/format/avif/Format_A2RGB30_Premultiplied.avif
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
autotests/write/format/avif/Format_ARGB32.avif
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
autotests/write/format/avif/Format_ARGB32_Premultiplied.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_ARGB4444_Premultiplied.avif
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
autotests/write/format/avif/Format_ARGB6666_Premultiplied.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_ARGB8555_Premultiplied.avif
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
autotests/write/format/avif/Format_ARGB8565_Premultiplied.avif
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
autotests/write/format/avif/Format_BGR30.avif
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
autotests/write/format/avif/Format_BGR888.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_CMYK8888.avif
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
autotests/write/format/avif/Format_Grayscale16.avif
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
autotests/write/format/avif/Format_Grayscale8.avif
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
autotests/write/format/avif/Format_Indexed8.avif
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
autotests/write/format/avif/Format_Mono.avif
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
autotests/write/format/avif/Format_MonoLSB.avif
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
autotests/write/format/avif/Format_RGB16.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_RGB30.avif
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
autotests/write/format/avif/Format_RGB32.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_RGB444.avif
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
autotests/write/format/avif/Format_RGB555.avif
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
autotests/write/format/avif/Format_RGB666.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_RGB888.avif
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
autotests/write/format/avif/Format_RGBA16FPx4.avif
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
autotests/write/format/avif/Format_RGBA16FPx4_Premultiplied.avif
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
autotests/write/format/avif/Format_RGBA32FPx4.avif
Normal file
After Width: | Height: | Size: 11 KiB |