| Index: third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp b/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
|
| index 63827d47422ff0c17e4a010c501df144a1e88704..23d6d5ad898a455500551e08753de75e0548756a 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
|
| @@ -451,17 +451,17 @@ public:
|
|
|
| m_decoder->setOrientation(readImageOrientation(info()));
|
|
|
| -#if USE(QCMSLIB)
|
| // Allow color management of the decoded RGBA pixels if possible.
|
| if (!m_decoder->ignoresGammaAndColorProfile()) {
|
| #if USE(ICCJPEG)
|
| JOCTET* profile = nullptr;
|
| unsigned profileLength = 0;
|
| if (read_icc_profile(info(), &profile, &profileLength)) {
|
| - decoder()->setColorProfileAndTransform(reinterpret_cast<char*>(profile), profileLength, colorSpaceHasAlpha(info()->out_color_space), false /* useSRGB */);
|
| + decoder()->setColorProfileAndComputeTransform(reinterpret_cast<char*>(profile), profileLength, colorSpaceHasAlpha(info()->out_color_space), false /* useSRGB */);
|
| free(profile);
|
| }
|
| #endif // USE(ICCJPEG)
|
| +#if USE(QCMSLIB)
|
| if (decoder()->colorTransform()) {
|
| overrideColorSpace = JCS_UNKNOWN;
|
| #if defined(TURBO_JPEG_RGB_SWIZZLE)
|
| @@ -470,8 +470,8 @@ public:
|
| m_info.out_color_space = JCS_EXT_RGBA;
|
| #endif // defined(TURBO_JPEG_RGB_SWIZZLE)
|
| }
|
| - }
|
| #endif // USE(QCMSLIB)
|
| + }
|
| if (overrideColorSpace == JCS_YCbCr) {
|
| m_info.out_color_space = JCS_YCbCr;
|
| m_info.raw_data_out = TRUE;
|
| @@ -927,7 +927,7 @@ bool JPEGImageDecoder::outputScanlines()
|
| ASSERT(info->output_width == static_cast<JDIMENSION>(m_decodedSize.width()));
|
| ASSERT(info->output_height == static_cast<JDIMENSION>(m_decodedSize.height()));
|
|
|
| - if (!buffer.setSize(info->output_width, info->output_height))
|
| + if (!buffer.setSizeAndColorProfile(info->output_width, info->output_height, colorProfile()))
|
| return setFailed();
|
|
|
| // The buffer is transparent outside the decoded area while the image is
|
|
|