jxl: fix build with Qt before 6.8.0

This commit is contained in:
Daniel Novomeský 2025-02-15 16:16:10 +01:00
parent e9fa4b6610
commit 74a734efed

View File

@ -1329,7 +1329,10 @@ bool QJpegXLHandler::write(const QImage &image)
output_info.uses_original_profile = JXL_FALSE; output_info.uses_original_profile = JXL_FALSE;
if (tmpimage.colorSpace().isValid()) { if (tmpimage.colorSpace().isValid()) {
const QPointF whiteP = image.colorSpace().whitePoint(); QPointF whiteP(0.3127f, 0.329f);
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
whiteP = image.colorSpace().whitePoint();
#endif
switch (tmpimage.colorSpace().primaries()) { switch (tmpimage.colorSpace().primaries()) {
case QColorSpace::Primaries::SRgb: case QColorSpace::Primaries::SRgb:
@ -1358,6 +1361,9 @@ bool QJpegXLHandler::write(const QImage &image)
break; break;
case QColorSpace::Primaries::ProPhotoRgb: case QColorSpace::Primaries::ProPhotoRgb:
color_profile.white_point = JXL_WHITE_POINT_CUSTOM; 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[0] = whiteP.x();
color_profile.white_point_xy[1] = whiteP.y(); color_profile.white_point_xy[1] = whiteP.y();
color_profile.primaries = JXL_PRIMARIES_CUSTOM; color_profile.primaries = JXL_PRIMARIES_CUSTOM;
@ -1368,6 +1374,7 @@ bool QJpegXLHandler::write(const QImage &image)
color_profile.primaries_blue_xy[0] = 0.0366; color_profile.primaries_blue_xy[0] = 0.0366;
color_profile.primaries_blue_xy[1] = 0.0001; color_profile.primaries_blue_xy[1] = 0.0001;
break; break;
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
case QColorSpace::Primaries::Bt2020: case QColorSpace::Primaries::Bt2020:
color_profile.white_point = JXL_WHITE_POINT_D65; color_profile.white_point = JXL_WHITE_POINT_D65;
color_profile.primaries = JXL_PRIMARIES_2100; color_profile.primaries = JXL_PRIMARIES_2100;
@ -1378,6 +1385,7 @@ bool QJpegXLHandler::write(const QImage &image)
color_profile.primaries_blue_xy[0] = 0.131; color_profile.primaries_blue_xy[0] = 0.131;
color_profile.primaries_blue_xy[1] = 0.046; color_profile.primaries_blue_xy[1] = 0.046;
break; break;
#endif
default: default:
if (is_gray && !whiteP.isNull()) { if (is_gray && !whiteP.isNull()) {
color_profile.white_point = JXL_WHITE_POINT_CUSTOM; color_profile.white_point = JXL_WHITE_POINT_CUSTOM;