diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2019-07-25 14:00:04 +0300 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2019-07-29 21:05:39 +0300 |
commit | 1fcd8345ac5fcc47883c082fa1d39110e4b2cb55 (patch) | |
tree | 3090615f9c7b3b31f8182cc4711cfe6f4d8acd8e /src/gui | |
parent | 889b1c4b28644c6112924cde751f4df38f697027 (diff) |
QPNGImageWriter: fix compilation with libpng 1.4
Amends 83de6d0ce5baceb7739b89254cba4acc6fdab47d.
The interface of png_set_iCCP() changed source-incompatibly from 1.4
to 1.5. #ifdef on the version as is done elsewhere in the code. Drop a
no-op C cast.
Also add PNG_iCCP_SUPPORTED around the new code, as that check is used
elsewhere in the code.
Change-Id: Ie203bd9eebea5697f426fa3e95591f86346b2685
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/image/qpnghandler.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp index 023696a401..8cfcbdb2d2 100644 --- a/src/gui/image/qpnghandler.cpp +++ b/src/gui/image/qpnghandler.cpp @@ -980,6 +980,7 @@ bool QPNGImageWriter::writeImage(const QImage& image, volatile int compression_i bpc, // per channel color_type, 0, 0, 0); // sets #channels +#ifdef PNG_iCCP_SUPPORTED if (image.colorSpace().isValid()) { QColorSpace cs = image.colorSpace(); // Support the old gamma making it override transferfunction. @@ -995,9 +996,17 @@ bool QPNGImageWriter::writeImage(const QImage& image, volatile int compression_i if (iccProfileName.isEmpty()) iccProfileName = QByteArrayLiteral("Custom"); QByteArray iccProfile = cs.iccProfile(); - png_set_iCCP(png_ptr, info_ptr, (png_const_charp)iccProfileName.constData(), - PNG_COMPRESSION_TYPE_BASE, (png_const_bytep)iccProfile.constData(), iccProfile.length()); - } else if (gamma != 0.0) { + png_set_iCCP(png_ptr, info_ptr, + #if PNG_LIBPNG_VER < 10500 + iccProfileName.data(), PNG_COMPRESSION_TYPE_BASE, iccProfile.data(), + #else + iccProfileName.constData(), PNG_COMPRESSION_TYPE_BASE, + (png_const_bytep)iccProfile.constData(), + #endif + iccProfile.length()); + } else +#endif + if (gamma != 0.0) { png_set_gAMA(png_ptr, info_ptr, 1.0/gamma); } |