Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp

Issue 6529057: Merge 77724 - 2011-02-04 Hironori Bono <hbono@chromium.org>... (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/597/
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « WebCore/ChangeLog ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. 2 * Copyright (C) 2006 Apple Computer, Inc.
3 * 3 *
4 * Portions are Copyright (C) 2001-6 mozilla.org 4 * Portions are Copyright (C) 2001-6 mozilla.org
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Stuart Parmenter <stuart@mozilla.com> 7 * Stuart Parmenter <stuart@mozilla.com>
8 * 8 *
9 * Copyright (C) 2007-2009 Torch Mobile, Inc. 9 * Copyright (C) 2007-2009 Torch Mobile, Inc.
10 * 10 *
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 m_decoder->setIgnoreGammaAndColorProfile(true); 215 m_decoder->setIgnoreGammaAndColorProfile(true);
216 // Note fall-through! 216 // Note fall-through!
217 case JCS_RGB: 217 case JCS_RGB:
218 m_info.out_color_space = JCS_RGB; 218 m_info.out_color_space = JCS_RGB;
219 break; 219 break;
220 case JCS_CMYK: 220 case JCS_CMYK:
221 case JCS_YCCK: 221 case JCS_YCCK:
222 // jpeglib cannot convert these to rgb, but it can convert ycck 222 // jpeglib cannot convert these to rgb, but it can convert ycck
223 // to cmyk. 223 // to cmyk.
224 m_info.out_color_space = JCS_CMYK; 224 m_info.out_color_space = JCS_CMYK;
225
226 // Same as with grayscale images, we convert CMYK images to RGBA
227 // ones. When we keep the color profiles of these CMYK images,
228 // CoreGraphics will convert their colors again. So, we discard
229 // their color profiles to prevent color corruption.
230 m_decoder->setIgnoreGammaAndColorProfile(true);
225 break; 231 break;
226 default: 232 default:
227 return m_decoder->setFailed(); 233 return m_decoder->setFailed();
228 } 234 }
229 235
230 // Don't allocate a giant and superfluous memory buffer when the 236 // Don't allocate a giant and superfluous memory buffer when the
231 // image is a sequential JPEG. 237 // image is a sequential JPEG.
232 m_info.buffered_image = jpeg_has_multiple_scans(&m_info); 238 m_info.buffered_image = jpeg_has_multiple_scans(&m_info);
233 239
234 // Used to set up image size so arrays can be allocated. 240 // Used to set up image size so arrays can be allocated.
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 // has failed. 533 // has failed.
528 if (!m_reader->decode(m_data->buffer(), onlySize) && isAllDataReceived()) 534 if (!m_reader->decode(m_data->buffer(), onlySize) && isAllDataReceived())
529 setFailed(); 535 setFailed();
530 // If we're done decoding the image, we don't need the JPEGImageReader 536 // If we're done decoding the image, we don't need the JPEGImageReader
531 // anymore. (If we failed, |m_reader| has already been cleared.) 537 // anymore. (If we failed, |m_reader| has already been cleared.)
532 else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache[0].status() == RGBA32Buffer::FrameComplete)) 538 else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache[0].status() == RGBA32Buffer::FrameComplete))
533 m_reader.clear(); 539 m_reader.clear();
534 } 540 }
535 541
536 } 542 }
OLDNEW
« no previous file with comments | « WebCore/ChangeLog ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698