diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2024-04-23 10:39:43 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2024-04-23 22:33:44 +0200 |
commit | e7362764d4931f255d2377462df8ac7a0d4e7c84 (patch) | |
tree | 564c6e678e557bc53b4f01624f93a9a757dbeec8 /src/gui/painting/qicc.cpp | |
parent | 60432b02f1c831869b63148a23f5f42ec8a0424f (diff) |
Must include a CLUT
Change-Id: I790e0c86d4cdbcfbcfda9e35c7689090f44711a6
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'src/gui/painting/qicc.cpp')
-rw-r--r-- | src/gui/painting/qicc.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gui/painting/qicc.cpp b/src/gui/painting/qicc.cpp index 59f941b017..c01fa433ea 100644 --- a/src/gui/painting/qicc.cpp +++ b/src/gui/painting/qicc.cpp @@ -778,6 +778,10 @@ static bool parseLutData(const QByteArray &data, const TagEntry &tagEntry, QColo qCWarning(lcIcc) << "Undersized lut8/lut16 tag, no room for tables"; return false; } + if (colorSpacePrivate->colorModel == QColorSpace::ColorModel::Cmyk && clutTableSize == 0) { + qCWarning(lcIcc) << "Cmyk conversion must have a CLUT"; + return false; + } const uint8_t *tableData = reinterpret_cast<const uint8_t *>(data.constData() + tagEntry.offset + sizeof(T)); @@ -997,6 +1001,9 @@ static bool parseMabData(const QByteArray &data, const TagEntry &tagEntry, QColo const uint8_t *clutTable = reinterpret_cast<const uint8_t *>(data.constData() + tagEntry.offset + mab.clutOffset + 20); parseCLUT(clutTable, (1.f/255.f), &clutElement, mab.outputChannels); } + } else if (colorSpacePrivate->colorModel == QColorSpace::ColorModel::Cmyk) { + qCWarning(lcIcc) << "Cmyk conversion must have a CLUT"; + return false; } if (isAb) { |