diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-09-28 10:36:04 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-09-29 13:16:48 +0200 |
commit | 2271d998d42313686a81d29e1174478f727167f6 (patch) | |
tree | f49c87affd9f448f4a9ba026da63571f9ffbf587 /src/gui/image | |
parent | 81008ef4b91eac3f8ddcdad0aaf48b51135c4010 (diff) |
Do not parse low-level PNG colorspaces if they are not used
Minor cleanup.
Change-Id: I92c271f737d82c5f853b79c418db5a6cedfaa399
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/gui/image')
-rw-r--r-- | src/gui/image/qpnghandler.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp index c3c987fa01..4b12ea6479 100644 --- a/src/gui/image/qpnghandler.cpp +++ b/src/gui/image/qpnghandler.cpp @@ -596,20 +596,20 @@ bool QPngHandlerPrivate::readPngHeader() } } #endif - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_sRGB)) { + if (colorSpaceState <= Srgb && png_get_valid(png_ptr, info_ptr, PNG_INFO_sRGB)) { int rendering_intent = -1; png_get_sRGB(png_ptr, info_ptr, &rendering_intent); // We don't actually care about the rendering_intent, just that it is valid - if (rendering_intent >= 0 && rendering_intent <= 3 && colorSpaceState <= Srgb) { + if (rendering_intent >= 0 && rendering_intent <= 3) { colorSpace = QColorSpace::SRgb; colorSpaceState = Srgb; } } - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA)) { + if (colorSpaceState <= GammaChrm && png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA)) { double file_gamma = 0.0; png_get_gAMA(png_ptr, info_ptr, &file_gamma); fileGamma = file_gamma; - if (fileGamma > 0.0f && colorSpaceState <= GammaChrm) { + if (fileGamma > 0.0f) { QColorSpacePrimaries primaries; if (png_get_valid(png_ptr, info_ptr, PNG_INFO_cHRM)) { double white_x, white_y, red_x, red_y; @@ -659,7 +659,7 @@ bool QPngHandlerPrivate::readPngImage(QImage *outImage) // This configuration forces gamma correction and // thus changes the output colorspace png_set_gamma(png_ptr, 1.0f / gamma, fileGamma); - colorSpace = colorSpace.withTransferFunction(QColorSpace::TransferFunction::Gamma, 1.0f / gamma); + colorSpace.setTransferFunction(QColorSpace::TransferFunction::Gamma, 1.0f / gamma); colorSpaceState = GammaChrm; } |