Commit Graph
538 Commits
Author SHA1 Message Date
Mirco Miranda 2e199eea80 KRA/ORA: merged in a single plugin and added metadata support
- ORA/KRA: merged in a single plugin (KRA)
- ORA: removed standalone plugin
- KRA: use of logging category
- KRA: add metadata support by processing the embedded `documentinfo.xml`
- Improved signature lookup (see MR !17) and added test case
2026-07-29 07:42:42 +02:00
Daniel Novomeský 5c3bdcddf2 avif: enable decoding of files with invalid EXIF metadata
When 1st parsing ends with invalid EXIF payload error,
we try 2nd time again while ignoring the EXIF metadata.

Dropped support for legacy 0.x libavif versions,
libavif 1.0.0+ is now required for the AVIF support.
2026-07-27 12:33:25 +00:00
Mirco Miranda 66d7d7c154 QOI: check format only in lowercase 2026-07-27 10:05:33 +02:00
Daniel Novomeský 7ec1170c86 heif: declare read support for HIF
image/heif MIME type uses following three file extensions:
heif, heic, hif.

Adding HIF into plugin's list.
2026-07-20 18:23:20 +02:00
Mirco MirandaandMirco Miranda c21b50d699 EXIF: add support for Windows Explorer tags 2026-07-20 07:27:34 +02:00
Daniel Novomeský a0825fe5cb heif: increase Maximum number of child boxes limit 2026-07-18 12:59:37 +02:00
Kyle Alexander BuanandDaniel Novomeský ad0fb9dde4 HEIF: keep reader callback table alive
libheif retains the heif_reader pointer after
heif_context_read_from_reader returns. The callback table was scoped
to the non-sequential branch and could be destroyed before
tiled image decoding used it from worker threads.

Give the callback table static storage duration.

BUG: 523105
2026-07-17 10:49:21 +02:00
Daniel Novomeský c748c6c2c6 heif: AVCI saving, JPEG in HEIF read support
Following compromises were chosen to ensure that saved AVCI
is decodable using OpenH264 decoder:
8-bit only, YUV420 subsampling, lossy compression,
large images encoded via image grid.
2026-07-14 08:36:37 +00:00
Mirco Miranda 7e14d5616f IFF: support for ZIP compressed RGFX 2026-07-13 10:13:23 +02:00
Mirco Miranda e6bc1af5e4 EXR: added support for additional metadata 2026-06-26 09:05:48 +02:00
Mirco Miranda 18322b0659 JP2: limits the maximum number of channels to the global value defined 2026-06-22 08:36:49 +02:00
Daniel Novomeský 081975807c JXR: remove INITGUID define
The define caused linking problems on Windows
2026-06-19 16:55:27 +02:00
Mirco MirandaandMirco Miranda 8768a8cf97 HEIF: use heif_reader for random access devices 2026-06-12 08:18:19 +02:00
Akseli Lahtinen 7edf807082 avif: If we only have single image, return false at jumpToNextImage
We were errorneously returning true here, as we do not have any more
images to jump to. If we only have one image, return false.

This avoids the avif handler getting stuck in a loop with only single images.

BUG: 521200
FIXED-IN: 6.28
2026-06-10 15:05:06 +03:00
Mirco MirandaandMirco Miranda 52045ff84d Added limit to maximum number of channels 2026-06-10 04:33:37 +02:00
Mirco MirandaandMirco Miranda ec640db10e Improve buffer memory management 2026-06-06 01:28:31 +02:00
Mirco Miranda f450e5c9a9 JXR: add a memory allocation barrier in jxrlib 2026-05-27 10:37:09 +02:00
Mirco Miranda 9dfcf67ea9 EXR: reject files with dimensions exceeding 300kx300k pixels 2026-05-25 14:13:15 +02:00
Mirco Miranda 9ddad16767 Improve size limits for AVIF, HEIF, and RAW plugins 2026-05-15 12:13:12 +02:00
Mirco Miranda 0e2b137b32 IFF: fix byte swapping in 16-bit DEEP images 2026-05-12 10:31:43 +02:00
Mirco Miranda 6d5e61f0b0 Add Farbfeld read only support 2026-05-11 07:38:28 +02:00
Mirco MirandaandMirco Miranda d7c3174fb6 DDS: fix mime type 2026-05-08 04:58:39 +02:00
Mirco MirandaandMirco Miranda 49a8fd38c8 IFF: DEEP image support 2026-05-08 01:29:54 +02:00
Mirco Miranda 1206598337 imageAlloc: add image initialization support 2026-05-07 08:41:10 +02:00
Mirco Miranda 3488077d8d Fix uninitialized value 2026-05-04 08:51:34 +02:00
Mirco MirandaandMirco Miranda 8048279473 HEIF: image transformation support 2026-05-03 00:00:11 +02:00
Mirco Miranda a936927ec1 JXR: check all library return codes 2026-04-26 06:22:30 +02:00
Mirco Miranda 191e5e6a69 EXIF improvements and bugfixes
- Fixes a writing issue for float values ​​less than 1
- Fixes a missing definition of `EXIF_DATETIMEDIGITIZED` tag
- Adds support for some common camera shot metadata
- Adds missing metadata to writing tests

The following plugins automatically gain support for the new metadata: AVIF, IFF, HEIF, JXL, JXR, PSD and TGA (V2E).

The new metadata added with this patch is usually saved by smartphones (e.g. iPhone or Google Pixel).
2026-04-26 06:08:25 +02:00
Mirco MirandaandMirco Miranda 51db11eefc JXR: fix Use-of-uninitialized-value 2026-04-23 14:44:45 +02:00
Mirco Miranda bc398382ac EXR: fix Null-dereference READ in OpenEXR 2026-04-23 11:42:16 +02:00
Mirco MirandaandAlbert Astals Cid d5e5012cfb HDR: fix incorrect use of s.atEnd() 2026-04-20 12:49:35 +00:00
Mirco Miranda 1b3f32a332 JXR: minimal support for multichannel 3 and 4 2026-04-20 14:13:10 +02:00
Mirco Miranda 7cf60da031 JXR: fix memory leaks 2026-04-19 20:37:27 +02:00
Mirco Miranda 276338199a EXR: fix incorrect loading of EXR files saved by Photoshop 2026 2026-04-16 15:34:33 +02:00
Mirco Miranda 742b5097f6 Fix HOST Computer metadata 2026-04-14 10:47:54 +02:00
Mirco MirandaandMirco Miranda 142ec14c81 TIM: PlayStation graphics read only support 2026-03-24 08:38:08 +01:00
Albert Astals Cid 38b8b70304 Remove ifdef now that we depend on Qt >= 6.9.0 2026-03-23 22:57:17 +01:00
Mirco Miranda 7c86ccaefb IFF: fix Integer-overflow in IDATChunk::strideSize 2026-03-23 12:05:01 +01:00
Mirco Miranda 836e0a53bb JP2: fix possible Undefined-shift 2026-03-04 08:15:48 +01:00
Mirco Miranda 5eb09116b0 IFF: fix buffer read overflow 2026-02-24 08:57:45 +01:00
Mirco MirandaandAlbert Astals Cid 92368ca58f Fix Heap-buffer-overflow WRITE 2026-02-22 18:27:34 +00:00
Mirco Miranda a91c7ef72f Fixed excessively frequent warning messages 2026-02-22 14:56:21 +01:00
Mirco Miranda c254875780 ANI: fix possible QByteArray allocation exception 2026-02-16 10:12:05 +01:00
Daniel Novomeský f3de2e77c1 jxl: adjust metadata size limits
Previously there was no limit for uncompressed metadata,
but when compressed metadata required buffer larger than 4MB,
image decoding stopped.

Now the plugin discards/skips metadata boxes larger than 8MB
without stopping image decoding.
If size of compressed box is above 8MB,
we do not attempt to decompress it.
File with compressed metadata could be rejected only in rare cases
when the decompression buffer grows above 32MB (four times 8M).
2026-02-13 15:44:39 +01:00
Mirco Miranda 1ef779f370 RGB: fix a possible exception on the new 2026-02-12 13:42:58 +01:00
Mirco MirandaandAlbert Astals Cid ebf77ccdf5 TGA: fix Undefined-shift 2026-02-09 23:02:06 +00:00
Mirco MirandaandAlbert Astals Cid 359cb039d2 PSD: improve conversion sanity checks 2026-02-09 22:50:51 +00:00
Mirco MirandaandAlbert Astals Cid f4b91d8a54 IFF: fix compilation warnings 2026-02-09 22:46:04 +00:00
Mirco Miranda 263b5a88e2 ANI: check for array allocation size 2026-02-09 08:41:40 +01:00
Mirco Miranda e0f1ba640a IFF: add uncompressed RGFX support 2026-01-27 13:58:01 +01:00