mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2026-06-19 13:49:10 -04:00
Remove Qt version checks now that 6.8.0 is the minimum required
This commit is contained in:
@@ -293,9 +293,7 @@ bool QAVIFHandler::decode_one_frame()
|
||||
colorspace = QColorSpace::fromIccProfile(icc_data);
|
||||
if (!colorspace.isValid()) {
|
||||
qCWarning(LOG_AVIFPLUGIN, "AVIF image has Qt-unsupported or invalid ICC profile!");
|
||||
}
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
else {
|
||||
} else {
|
||||
if (colorspace.colorModel() == QColorSpace::ColorModel::Cmyk) {
|
||||
qCWarning(LOG_AVIFPLUGIN, "CMYK ICC profile is not extected for AVIF, discarding the ICCprofile!");
|
||||
colorspace = QColorSpace();
|
||||
@@ -325,7 +323,6 @@ bool QAVIFHandler::decode_one_frame()
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
float prim[8] = {0.64f, 0.33f, 0.3f, 0.6f, 0.15f, 0.06f, 0.3127f, 0.329f};
|
||||
// outPrimaries: rX, rY, gX, gY, bX, bY, wX, wY
|
||||
@@ -360,14 +357,12 @@ bool QAVIFHandler::decode_one_frame()
|
||||
case 13:
|
||||
q_trc = QColorSpace::TransferFunction::SRgb;
|
||||
break;
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
case 16: /* AVIF_TRANSFER_CHARACTERISTICS_PQ */
|
||||
q_trc = QColorSpace::TransferFunction::St2084;
|
||||
break;
|
||||
case 18: /* AVIF_TRANSFER_CHARACTERISTICS_HLG */
|
||||
q_trc = QColorSpace::TransferFunction::Hlg;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
qCWarning(LOG_AVIFPLUGIN, "CICP colorPrimaries: %d, transferCharacteristics: %d\nThe colorspace is unsupported by this plug-in yet.",
|
||||
m_decoder->image->colorPrimaries,
|
||||
@@ -377,11 +372,9 @@ bool QAVIFHandler::decode_one_frame()
|
||||
}
|
||||
|
||||
if (q_trc != QColorSpace::TransferFunction::Custom) { // we create new colorspace using Qt
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
if (loadgray) {
|
||||
colorspace = QColorSpace(whitePoint, q_trc, q_trc_gamma);
|
||||
} else {
|
||||
#endif
|
||||
switch (m_decoder->image->colorPrimaries) {
|
||||
/* AVIF_COLOR_PRIMARIES_BT709 */
|
||||
case 0:
|
||||
@@ -397,9 +390,7 @@ bool QAVIFHandler::decode_one_frame()
|
||||
colorspace = QColorSpace(whitePoint, redPoint, greenPoint, bluePoint, q_trc, q_trc_gamma);
|
||||
break;
|
||||
}
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!colorspace.isValid()) {
|
||||
@@ -747,14 +738,12 @@ bool QAVIFHandler::write(const QImage &image)
|
||||
/* AVIF_TRANSFER_CHARACTERISTICS_SRGB */
|
||||
avif->transferCharacteristics = (avifTransferCharacteristics)13;
|
||||
break;
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
case QColorSpace::TransferFunction::St2084:
|
||||
avif->transferCharacteristics = (avifTransferCharacteristics)16;
|
||||
break;
|
||||
case QColorSpace::TransferFunction::Hlg:
|
||||
avif->transferCharacteristics = (avifTransferCharacteristics)18;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
/* AVIF_TRANSFER_CHARACTERISTICS_UNSPECIFIED */
|
||||
break;
|
||||
@@ -799,7 +788,6 @@ bool QAVIFHandler::write(const QImage &image)
|
||||
}
|
||||
}
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
QImage tmpcolorimage;
|
||||
auto cs = image.colorSpace();
|
||||
if (cs.isValid() && cs.colorModel() == QColorSpace::ColorModel::Cmyk && image.format() == QImage::Format_CMYK8888) {
|
||||
@@ -814,9 +802,6 @@ bool QAVIFHandler::write(const QImage &image)
|
||||
} else {
|
||||
tmpcolorimage = image.convertToFormat(tmpformat);
|
||||
}
|
||||
#else
|
||||
QImage tmpcolorimage = image.convertToFormat(tmpformat);
|
||||
#endif
|
||||
|
||||
avifPixelFormat pixel_format = AVIF_PIXEL_FORMAT_YUV420;
|
||||
if (m_quality >= KIMG_AVIF_QUALITY_HIGH) {
|
||||
@@ -876,14 +861,12 @@ bool QAVIFHandler::write(const QImage &image)
|
||||
/* AVIF_TRANSFER_CHARACTERISTICS_SRGB */
|
||||
transfer_to_save = (avifTransferCharacteristics)13;
|
||||
break;
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
case QColorSpace::TransferFunction::St2084:
|
||||
transfer_to_save = (avifTransferCharacteristics)16;
|
||||
break;
|
||||
case QColorSpace::TransferFunction::Hlg:
|
||||
transfer_to_save = (avifTransferCharacteristics)18;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
/* AVIF_TRANSFER_CHARACTERISTICS_UNSPECIFIED */
|
||||
transfer_to_save = (avifTransferCharacteristics)2;
|
||||
@@ -919,14 +902,12 @@ bool QAVIFHandler::write(const QImage &image)
|
||||
case 5: // AVIF_TRANSFER_CHARACTERISTICS_BT470BG
|
||||
tmpcolorimage.convertToColorSpace(QColorSpace(QColorSpace::Primaries::SRgb, 2.8f));
|
||||
break;
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
case 16:
|
||||
tmpcolorimage.convertToColorSpace(QColorSpace(QColorSpace::Primaries::SRgb, QColorSpace::TransferFunction::St2084));
|
||||
break;
|
||||
case 18:
|
||||
tmpcolorimage.convertToColorSpace(QColorSpace(QColorSpace::Primaries::SRgb, QColorSpace::TransferFunction::Hlg));
|
||||
break;
|
||||
#endif
|
||||
default: // AVIF_TRANSFER_CHARACTERISTICS_SRGB + any other
|
||||
tmpcolorimage.convertToColorSpace(QColorSpace(QColorSpace::Primaries::SRgb, QColorSpace::TransferFunction::SRgb));
|
||||
transfer_to_save = (avifTransferCharacteristics)13;
|
||||
|
||||
@@ -2120,10 +2120,8 @@ bool writeL8(const QImage &outImage, QDataStream &s)
|
||||
}
|
||||
|
||||
ScanLineConverter slc(QImage::Format_Grayscale8);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if(outImage.colorSpace().isValid())
|
||||
slc.setTargetColorSpace(QColorSpace(QPointF(0.3127, 0.3291), QColorSpace::TransferFunction::SRgb));
|
||||
#endif
|
||||
|
||||
for (int y = 0, h = outImage.height(); y < h; ++y) {
|
||||
const quint8 *scanLine = reinterpret_cast<const quint8*>(slc.convertedScanLine(outImage, y));
|
||||
|
||||
@@ -189,7 +189,6 @@ bool HEIFHandler::write_helper(const QImage &image)
|
||||
}
|
||||
}
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
QImage tmpimage;
|
||||
auto cs = image.colorSpace();
|
||||
if (cs.isValid() && cs.colorModel() == QColorSpace::ColorModel::Cmyk && image.format() == QImage::Format_CMYK8888) {
|
||||
@@ -205,9 +204,6 @@ bool HEIFHandler::write_helper(const QImage &image)
|
||||
} else {
|
||||
tmpimage = image.convertToFormat(tmpformat);
|
||||
}
|
||||
#else
|
||||
QImage tmpimage = image.convertToFormat(tmpformat);
|
||||
#endif
|
||||
|
||||
struct heif_context *context = heif_context_alloc();
|
||||
struct heif_error err;
|
||||
@@ -868,9 +864,7 @@ bool HEIFHandler::ensureDecoder()
|
||||
QColorSpace colorspace = QColorSpace::fromIccProfile(ba);
|
||||
if (!colorspace.isValid()) {
|
||||
qCWarning(LOG_HEIFPLUGIN) << "HEIC image has Qt-unsupported or invalid ICC profile!";
|
||||
}
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
else if (colorspace.colorModel() == QColorSpace::ColorModel::Cmyk) {
|
||||
} else if (colorspace.colorModel() == QColorSpace::ColorModel::Cmyk) {
|
||||
qCWarning(LOG_HEIFPLUGIN) << "CMYK ICC profile is not expected for HEIF, discarding the ICCprofile!";
|
||||
colorspace = QColorSpace();
|
||||
} else if (colorspace.colorModel() == QColorSpace::ColorModel::Gray) {
|
||||
@@ -897,7 +891,6 @@ bool HEIFHandler::ensureDecoder()
|
||||
m_current_image.convertTo(bit_depth > 8 ? QImage::Format_Grayscale16 : QImage::Format_Grayscale8);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
m_current_image.setColorSpace(colorspace);
|
||||
}
|
||||
} else {
|
||||
@@ -934,14 +927,12 @@ bool HEIFHandler::ensureDecoder()
|
||||
case 13:
|
||||
q_trc = QColorSpace::TransferFunction::SRgb;
|
||||
break;
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0))
|
||||
case 16:
|
||||
q_trc = QColorSpace::TransferFunction::St2084;
|
||||
break;
|
||||
case 18:
|
||||
q_trc = QColorSpace::TransferFunction::Hlg;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
qCWarning(LOG_HEIFPLUGIN) << "CICP color_primaries: %d, transfer_characteristics: %d\nThe colorspace is unsupported by this plug-in yet."
|
||||
<< nclx->color_primaries
|
||||
|
||||
@@ -391,7 +391,6 @@ public:
|
||||
prec = 0;
|
||||
}
|
||||
auto jp2cs = m_jp2_image->color_space;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (jp2cs == OPJ_CLRSPC_UNKNOWN || jp2cs == OPJ_CLRSPC_UNSPECIFIED) {
|
||||
auto cs = colorSpace();
|
||||
if (cs.colorModel() == QColorSpace::ColorModel::Cmyk)
|
||||
@@ -401,7 +400,6 @@ public:
|
||||
else if (cs.colorModel() == QColorSpace::ColorModel::Gray)
|
||||
jp2cs = OPJ_CLRSPC_GRAY;
|
||||
}
|
||||
#endif
|
||||
if (jp2cs == OPJ_CLRSPC_UNKNOWN || jp2cs == OPJ_CLRSPC_UNSPECIFIED) {
|
||||
if (m_jp2_image->numcomps == 1)
|
||||
jp2cs = OPJ_CLRSPC_GRAY;
|
||||
@@ -431,10 +429,8 @@ public:
|
||||
}
|
||||
} else if (jp2cs == OPJ_CLRSPC_CMYK) {
|
||||
if (m_jp2_image->numcomps == 4) {
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (prec == 8 || prec == 16)
|
||||
fmt = QImage::Format_CMYK8888;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -579,7 +575,6 @@ public:
|
||||
prec = 16;
|
||||
convFormat = QImage::Format_RGBA64;
|
||||
break;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
case QImage::Format_CMYK8888: // requires OpenJPEG 2.5.3+
|
||||
if (opjVersion() >= QT_VERSION_CHECK(2, 5, 3)) {
|
||||
ncomp = 4;
|
||||
@@ -588,7 +583,6 @@ public:
|
||||
} else {
|
||||
Q_FALLTHROUGH();
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
if (image.depth() > 32) {
|
||||
qCWarning(LOG_JP2PLUGIN) << "The image is saved losing precision!";
|
||||
|
||||
@@ -26,13 +26,9 @@ Q_LOGGING_CATEGORY(LOG_JXLPLUGIN, "kf.imageformats.plugins.jxl", QtDebugMsg)
|
||||
Q_LOGGING_CATEGORY(LOG_JXLPLUGIN, "kf.imageformats.plugins.jxl", QtWarningMsg)
|
||||
#endif
|
||||
|
||||
|
||||
// Avoid rotation on buggy Qts (see also https://bugreports.qt.io/browse/QTBUG-126575)
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 3)
|
||||
#ifndef JXL_QT_AUTOTRANSFORM
|
||||
#define JXL_QT_AUTOTRANSFORM
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef JXL_HDR_PRESERVATION_DISABLED
|
||||
// Define JXL_HDR_PRESERVATION_DISABLED to disable HDR preservation
|
||||
@@ -414,7 +410,6 @@ bool QJpegXLHandler::countALLFrames()
|
||||
m_framedelays[0] = 0;
|
||||
}
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
// CMYK detection
|
||||
if ((m_basicinfo.uses_original_profile == JXL_TRUE) && (m_basicinfo.num_color_channels == 3) && (m_colorspace.isValid())) {
|
||||
bool alpha_found = false;
|
||||
@@ -471,7 +466,6 @@ bool QJpegXLHandler::countALLFrames()
|
||||
qCWarning(LOG_JXLPLUGIN, "JXL has CMYK colorspace but BLACK channel was not found!");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef JXL_DECODE_BOXES_DISABLED
|
||||
if (!decodeContainer()) {
|
||||
@@ -498,7 +492,6 @@ bool QJpegXLHandler::decode_one_frame()
|
||||
}
|
||||
|
||||
if (m_isCMYK) { // CMYK decoding
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
uchar *pixels_cmy = nullptr;
|
||||
uchar *pixels_black = nullptr;
|
||||
|
||||
@@ -739,11 +732,6 @@ bool QJpegXLHandler::decode_one_frame()
|
||||
free(pixels_cmy);
|
||||
pixels_cmy = nullptr;
|
||||
}
|
||||
#else
|
||||
// CMYK not supported in older Qt
|
||||
m_parseState = ParseJpegXLError;
|
||||
return false;
|
||||
#endif
|
||||
} else { // RGB or GRAY
|
||||
m_current_image = imageAlloc(m_basicinfo.xsize, m_basicinfo.ysize, m_input_image_format);
|
||||
if (m_current_image.isNull()) {
|
||||
@@ -921,11 +909,9 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
}
|
||||
|
||||
bool save_cmyk = false;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (image.format() == QImage::Format_CMYK8888 && image.colorSpace().isValid() && image.colorSpace().colorModel() == QColorSpace::ColorModel::Cmyk) {
|
||||
save_cmyk = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
JxlEncoderStatus status;
|
||||
JxlPixelFormat pixel_format;
|
||||
@@ -936,7 +922,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
auto xmp_data = image.text(QStringLiteral(META_KEY_XMP_ADOBE)).toUtf8();
|
||||
|
||||
if (save_cmyk) { // CMYK is always lossless
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
output_info.uses_original_profile = JXL_TRUE;
|
||||
output_info.xsize = image.width();
|
||||
output_info.ysize = image.height();
|
||||
@@ -1109,13 +1094,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
JxlEncoderDestroy(encoder);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
if (runner) {
|
||||
JxlThreadParallelRunnerDestroy(runner);
|
||||
}
|
||||
JxlEncoderDestroy(encoder);
|
||||
return false;
|
||||
#endif
|
||||
} else { // RGB or GRAY saving
|
||||
int save_depth = 8; // 8 / 16 / 32
|
||||
bool save_fp = false;
|
||||
@@ -1154,9 +1132,7 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
case QImage::Format_RGBX8888:
|
||||
case QImage::Format_RGBA8888:
|
||||
case QImage::Format_RGBA8888_Premultiplied:
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
case QImage::Format_CMYK8888:
|
||||
#endif
|
||||
save_depth = 8;
|
||||
break;
|
||||
case QImage::Format_Grayscale16:
|
||||
@@ -1251,7 +1227,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
}
|
||||
}
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
QImage tmpimage;
|
||||
if (image.colorSpace().isValid()) {
|
||||
if (is_gray && image.colorSpace().colorModel() != QColorSpace::ColorModel::Gray) {
|
||||
@@ -1304,9 +1279,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
} else { // no ColorSpace or invalid
|
||||
tmpimage = image.convertToFormat(tmpformat);
|
||||
}
|
||||
#else
|
||||
QImage tmpimage = image.convertToFormat(tmpformat);
|
||||
#endif
|
||||
|
||||
output_info.xsize = tmpimage.width();
|
||||
output_info.ysize = tmpimage.height();
|
||||
@@ -1332,10 +1304,7 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
output_info.uses_original_profile = JXL_FALSE;
|
||||
|
||||
if (tmpimage.colorSpace().isValid()) {
|
||||
QPointF whiteP(0.3127f, 0.329f);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
whiteP = image.colorSpace().whitePoint();
|
||||
#endif
|
||||
const QPointF whiteP = image.colorSpace().whitePoint();
|
||||
|
||||
switch (tmpimage.colorSpace().primaries()) {
|
||||
case QColorSpace::Primaries::SRgb:
|
||||
@@ -1364,9 +1333,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
break;
|
||||
case QColorSpace::Primaries::ProPhotoRgb:
|
||||
color_profile.white_point = JXL_WHITE_POINT_CUSTOM;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0)
|
||||
whiteP = QPointF(0.3457f, 0.3585f);
|
||||
#endif
|
||||
color_profile.white_point_xy[0] = whiteP.x();
|
||||
color_profile.white_point_xy[1] = whiteP.y();
|
||||
color_profile.primaries = JXL_PRIMARIES_CUSTOM;
|
||||
@@ -1377,7 +1343,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
color_profile.primaries_blue_xy[0] = 0.0366;
|
||||
color_profile.primaries_blue_xy[1] = 0.0001;
|
||||
break;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
case QColorSpace::Primaries::Bt2020:
|
||||
color_profile.white_point = JXL_WHITE_POINT_D65;
|
||||
color_profile.primaries = JXL_PRIMARIES_2100;
|
||||
@@ -1388,7 +1353,6 @@ bool QJpegXLHandler::write(const QImage &image)
|
||||
color_profile.primaries_blue_xy[0] = 0.131;
|
||||
color_profile.primaries_blue_xy[1] = 0.046;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
if (is_gray && !whiteP.isNull()) {
|
||||
color_profile.white_point = JXL_WHITE_POINT_CUSTOM;
|
||||
|
||||
@@ -579,9 +579,7 @@ public:
|
||||
// IMPORTANT: these values must be in exactMatchingFormat()
|
||||
// clang-format off
|
||||
auto valid = QSet<QImage::Format>()
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
<< QImage::Format_CMYK8888
|
||||
#endif
|
||||
#ifndef JXR_DENY_FLOAT_IMAGE
|
||||
<< QImage::Format_RGBA16FPx4
|
||||
<< QImage::Format_RGBX16FPx4
|
||||
@@ -671,10 +669,8 @@ public:
|
||||
wmiSCP->bVerbose = FALSE;
|
||||
if (fmt == QImage::Format_Grayscale8 || fmt == QImage::Format_Grayscale16 || fmt == QImage::Format_Mono)
|
||||
wmiSCP->cfColorFormat = Y_ONLY;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
else if (fmt == QImage::Format_CMYK8888)
|
||||
wmiSCP->cfColorFormat = CMYK;
|
||||
#endif
|
||||
else
|
||||
wmiSCP->cfColorFormat = YUV_444;
|
||||
wmiSCP->bdBitDepth = BD_LONG;
|
||||
@@ -812,10 +808,8 @@ private:
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_RGBA32FPx4_Premultiplied, GUID_PKPixelFormat128bppPRGBAFloat)
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_RGBX32FPx4, GUID_PKPixelFormat128bppRGBFloat)
|
||||
#endif // JXR_DENY_FLOAT_IMAGE
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_CMYK8888, GUID_PKPixelFormat32bppCMYK)
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_CMYK8888, GUID_PKPixelFormat32bppCMYKDIRECT)
|
||||
#endif
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_Mono, GUID_PKPixelFormatBlackWhite)
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_Grayscale8, GUID_PKPixelFormat8bppGray)
|
||||
<< std::pair<QImage::Format, PKPixelFormatGUID>(QImage::Format_Grayscale16, GUID_PKPixelFormat16bppGray)
|
||||
|
||||
@@ -781,13 +781,11 @@ static bool writeImage24(const QImage &image, QDataStream &s, PCXHEADER &header)
|
||||
|
||||
auto tcs = QColorSpace();
|
||||
auto tfmt = image.format();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
auto cs = image.colorSpace();
|
||||
if (cs.isValid() && cs.colorModel() == QColorSpace::ColorModel::Cmyk && tfmt == QImage::Format_CMYK8888) {
|
||||
tcs = QColorSpace(QColorSpace::SRgb);
|
||||
tfmt = QImage::Format_RGB32;
|
||||
}
|
||||
#endif
|
||||
if (tfmt != QImage::Format_ARGB32 && tfmt != QImage::Format_RGB32) {
|
||||
tfmt = hasAlpha ? QImage::Format_ARGB32 : QImage::Format_RGB32;
|
||||
}
|
||||
|
||||
@@ -275,13 +275,11 @@ bool SoftimagePICHandler::write(const QImage &image)
|
||||
bool alpha = image.hasAlphaChannel();
|
||||
auto tcs = QColorSpace();
|
||||
auto tfmt = image.format();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
auto cs = image.colorSpace();
|
||||
if (cs.isValid() && cs.colorModel() == QColorSpace::ColorModel::Cmyk && tfmt == QImage::Format_CMYK8888) {
|
||||
tcs = QColorSpace(QColorSpace::SRgb);
|
||||
tfmt = QImage::Format_RGB32;
|
||||
}
|
||||
#endif
|
||||
if (tfmt != QImage::Format_ARGB32 && tfmt != QImage::Format_RGB32) {
|
||||
tfmt = alpha ? QImage::Format_ARGB32 : QImage::Format_RGB32;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ typedef quint8 uchar;
|
||||
namespace // Private.
|
||||
{
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0) || defined(PSD_NATIVE_CMYK_SUPPORT_DISABLED)
|
||||
#if defined(PSD_NATIVE_CMYK_SUPPORT_DISABLED)
|
||||
# define CMYK_FORMAT QImage::Format_Invalid
|
||||
#else
|
||||
# define CMYK_FORMAT QImage::Format_CMYK8888
|
||||
@@ -1336,7 +1336,7 @@ bool PSDHandler::read(QImage *image)
|
||||
// CMYK with spots (e.g. CMYKA) ICC conversion to RGBA/RGBX
|
||||
QImage tmpCmyk;
|
||||
ScanLineConverter iccConv(img.format());
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) && !defined(PSD_NATIVE_CMYK_SUPPORT_DISABLED)
|
||||
#if !defined(PSD_NATIVE_CMYK_SUPPORT_DISABLED)
|
||||
if (header.color_mode == CM_CMYK && img.format() != QImage::Format_CMYK8888) {
|
||||
auto tmpi = QImage(header.width, 1, QImage::Format_CMYK8888);
|
||||
if (setColorSpace(tmpi, irs))
|
||||
@@ -1488,13 +1488,11 @@ bool PSDHandler::read(QImage *image)
|
||||
if (header.color_mode == CM_RGB && header.depth == 32) {
|
||||
img.setColorSpace(QColorSpace(QColorSpace::SRgbLinear));
|
||||
}
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (header.color_mode == CM_GRAYSCALE && header.depth == 32) {
|
||||
auto qs = QColorSpace(QPointF(0.3127, 0.3291), QColorSpace::TransferFunction::Linear);
|
||||
qs.setDescription(QStringLiteral("Linear grayscale"));
|
||||
img.setColorSpace(qs);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// XMP data
|
||||
|
||||
@@ -841,11 +841,9 @@ bool LoadRAW(QImageIOHandler *handler, QImage &img)
|
||||
if (params.output_color == 7) {
|
||||
img.setColorSpace(QColorSpace(QColorSpace::DisplayP3));
|
||||
}
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (params.output_color == 8) {
|
||||
img.setColorSpace(QColorSpace(QColorSpace::Bt2020));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// *** Set the metadata
|
||||
|
||||
@@ -766,15 +766,11 @@ bool SGIImagePrivate::writeImage(const QImage &image)
|
||||
|
||||
auto tcs = QColorSpace();
|
||||
auto tfmt = image.format();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
auto cs = image.colorSpace();
|
||||
if (cs.isValid() && cs.colorModel() == QColorSpace::ColorModel::Cmyk && tfmt == QImage::Format_CMYK8888) {
|
||||
tcs = QColorSpace(QColorSpace::SRgb);
|
||||
tfmt = QImage::Format_RGB32;
|
||||
} else if (hasAlpha && tfmt != QImage::Format_ARGB32) {
|
||||
#else
|
||||
if (hasAlpha && tfmt != QImage::Format_ARGB32) {
|
||||
#endif
|
||||
tfmt = QImage::Format_ARGB32;
|
||||
} else if (!hasAlpha && tfmt != QImage::Format_RGB32) {
|
||||
tfmt = QImage::Format_RGB32;
|
||||
|
||||
@@ -72,18 +72,12 @@ const uchar *ScanLineConverter::convertedScanLine(const QImage &image, qint32 y)
|
||||
if (!cs.isValid()) {
|
||||
cs = _defaultColorSpace;
|
||||
}
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (tmp.depth() < 8 && cs.colorModel() == QColorSpace::ColorModel::Gray) {
|
||||
tmp.convertTo(QImage::Format_Grayscale8);
|
||||
}
|
||||
else if (tmp.depth() < 24 && cs.colorModel() == QColorSpace::ColorModel::Rgb) {
|
||||
tmp.convertTo(tmp.hasAlphaChannel() ? QImage::Format_ARGB32 : QImage::Format_RGB32);
|
||||
}
|
||||
#else
|
||||
if (tmp.depth() < 24) {
|
||||
tmp.convertTo(tmp.hasAlphaChannel() ? QImage::Format_ARGB32 : QImage::Format_RGB32);
|
||||
}
|
||||
#endif
|
||||
tmp.setColorSpace(cs);
|
||||
tmp.convertToColorSpace(_colorSpace);
|
||||
}
|
||||
|
||||
@@ -177,12 +177,10 @@ public:
|
||||
QImage::Format format() const
|
||||
{
|
||||
auto format = QImage::Format_Invalid;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
if (m_pb.colorCount() == 4) {
|
||||
if (m_pb.bitMask() == 15)
|
||||
format = QImage::Format_CMYK8888;
|
||||
}
|
||||
#endif
|
||||
if (m_pb.colorCount() == 3) {
|
||||
if (m_pb.bitMask() == 7)
|
||||
format = QImage::Format_RGB888;
|
||||
|
||||
@@ -610,11 +610,7 @@ static bool LoadTGA(QIODevice *dev, const TgaHeader &tga, QImage &img)
|
||||
// Read palette.
|
||||
if (info.pal) {
|
||||
QList<QRgb> colorTable;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0)
|
||||
colorTable.resize(tga.colormap_length);
|
||||
#else
|
||||
colorTable.resizeForOverwrite(tga.colormap_length);
|
||||
#endif
|
||||
|
||||
if (tga.colormap_size == 32) {
|
||||
char data[4]; // BGRA
|
||||
@@ -989,15 +985,11 @@ bool TGAHandler::writeRGBA(const QImage &image)
|
||||
auto format = image.format();
|
||||
const bool hasAlpha = image.hasAlphaChannel();
|
||||
auto tcs = QColorSpace();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
|
||||
auto cs = image.colorSpace();
|
||||
if (cs.isValid() && cs.colorModel() == QColorSpace::ColorModel::Cmyk && image.format() == QImage::Format_CMYK8888) {
|
||||
format = QImage::Format_RGB32;
|
||||
tcs = QColorSpace(QColorSpace::SRgb);
|
||||
} else if (hasAlpha && image.format() != QImage::Format_ARGB32) {
|
||||
#else
|
||||
if (hasAlpha && image.format() != QImage::Format_ARGB32) {
|
||||
#endif
|
||||
format = QImage::Format_ARGB32;
|
||||
} else if (!hasAlpha && image.format() != QImage::Format_RGB32) {
|
||||
format = QImage::Format_RGB32;
|
||||
|
||||
Reference in New Issue
Block a user