diff options
author | Ben Murdoch <benm@google.com> | 2011-01-06 21:36:31 +0000 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-01-07 10:36:05 +0000 |
commit | 4a156157940f51b91eadd76f6c86f862ec0a1da0 (patch) | |
tree | ee905fa007e14522848f571215c1054734db9269 /WebCore/platform/image-decoders | |
parent | 21d8d81a756ca7e60b5131e5f1006f52799179b0 (diff) | |
download | external_webkit-4a156157940f51b91eadd76f6c86f862ec0a1da0.zip external_webkit-4a156157940f51b91eadd76f6c86f862ec0a1da0.tar.gz external_webkit-4a156157940f51b91eadd76f6c86f862ec0a1da0.tar.bz2 |
Merge WebKit at Chromium 9.0.597.55: trivial merge by git
Change-Id: I2c6f2ebc4431d15ac82b5b1a9f08159e1731bc57
Diffstat (limited to 'WebCore/platform/image-decoders')
-rw-r--r-- | WebCore/platform/image-decoders/ImageDecoder.h | 2 | ||||
-rw-r--r-- | WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/WebCore/platform/image-decoders/ImageDecoder.h b/WebCore/platform/image-decoders/ImageDecoder.h index dde8550..ceb8f9b 100644 --- a/WebCore/platform/image-decoders/ImageDecoder.h +++ b/WebCore/platform/image-decoders/ImageDecoder.h @@ -326,6 +326,8 @@ namespace WebCore { // transparency. virtual bool supportsAlpha() const { return true; } + void setIgnoreGammaAndColorProfile(bool flag) { m_ignoreGammaAndColorProfile = flag; } + // Whether or not the gamma and color profile are applied. bool ignoresGammaAndColorProfile() const { return m_ignoreGammaAndColorProfile; } diff --git a/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp b/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp index ff1262e..a2b9f8e 100644 --- a/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp +++ b/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp @@ -208,8 +208,13 @@ public: // Let libjpeg take care of gray->RGB and YCbCr->RGB conversions. switch (m_info.jpeg_color_space) { case JCS_GRAYSCALE: - case JCS_RGB: case JCS_YCbCr: + // Grayscale images get "upsampled" by libjpeg. If we use + // their color profile, CoreGraphics will "upsample" them + // again, resulting in horizontal distortions. + m_decoder->setIgnoreGammaAndColorProfile(true); + // Note fall-through! + case JCS_RGB: m_info.out_color_space = JCS_RGB; break; case JCS_CMYK: |