From 0e2b137b32056dbecc2902ab10cfbd00597e9542 Mon Sep 17 00:00:00 2001 From: Mirco Miranda Date: Tue, 12 May 2026 08:21:09 +0200 Subject: [PATCH] IFF: fix byte swapping in 16-bit DEEP images --- ...{sv5_unc_deep.iff => sv5_unc_rgb8_deep.iff} | Bin ...{sv5_unc_deep.png => sv5_unc_rgb8_deep.png} | Bin autotests/read/iff/sv5_unc_rgba16_deep.iff | Bin 0 -> 137352 bytes autotests/read/iff/sv5_unc_rgba16_deep.png | Bin 0 -> 16016 bytes autotests/read/iff/sv5_unc_rgba8_deep.iff | Bin 0 -> 68708 bytes autotests/read/iff/sv5_unc_rgba8_deep.png | Bin 0 -> 9445 bytes src/imageformats/chunks.cpp | 13 ++++++++++++- 7 files changed, 12 insertions(+), 1 deletion(-) rename autotests/read/iff/{sv5_unc_deep.iff => sv5_unc_rgb8_deep.iff} (100%) rename autotests/read/iff/{sv5_unc_deep.png => sv5_unc_rgb8_deep.png} (100%) create mode 100644 autotests/read/iff/sv5_unc_rgba16_deep.iff create mode 100644 autotests/read/iff/sv5_unc_rgba16_deep.png create mode 100644 autotests/read/iff/sv5_unc_rgba8_deep.iff create mode 100644 autotests/read/iff/sv5_unc_rgba8_deep.png diff --git a/autotests/read/iff/sv5_unc_deep.iff b/autotests/read/iff/sv5_unc_rgb8_deep.iff similarity index 100% rename from autotests/read/iff/sv5_unc_deep.iff rename to autotests/read/iff/sv5_unc_rgb8_deep.iff diff --git a/autotests/read/iff/sv5_unc_deep.png b/autotests/read/iff/sv5_unc_rgb8_deep.png similarity index 100% rename from autotests/read/iff/sv5_unc_deep.png rename to autotests/read/iff/sv5_unc_rgb8_deep.png diff --git a/autotests/read/iff/sv5_unc_rgba16_deep.iff b/autotests/read/iff/sv5_unc_rgba16_deep.iff new file mode 100644 index 0000000000000000000000000000000000000000..9d65a527af2219a7f60c8509d2bb89d2f261bde4 GIT binary patch literal 137352 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 literal 0 HcmV?d00001 diff --git a/autotests/read/iff/sv5_unc_rgba8_deep.iff b/autotests/read/iff/sv5_unc_rgba8_deep.iff new file mode 100644 index 0000000000000000000000000000000000000000..2f6a99c2c4373d5a8ded7534935f3c66a2940f19 GIT binary patch literal 68708 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 literal 0 HcmV?d00001 diff --git a/src/imageformats/chunks.cpp b/src/imageformats/chunks.cpp index 82e9e0f..817c4fe 100644 --- a/src/imageformats/chunks.cpp +++ b/src/imageformats/chunks.cpp @@ -4069,8 +4069,19 @@ QByteArray DBODChunk::strideRead(QIODevice *d, qint32, const DGBLChunk *header, } // Uncompressed, Rle and TvDeepCompression: one line at a time. - if (rr != size) + if (rr != size) { return {}; + } + + // byte swap + if (auto count = pel->count()) { + if (pel->depth() / count == 16) { + for (auto x = 0, w = qint32(planes.size()) - 1; x < w; x += 2) { + std::swap(planes[x], planes[x + 1]); + } + } + } + return planes; }