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

Side by Side Diff: third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp

Issue 2512683003: Create ImageDecoder target color space (Closed)
Patch Set: Fix mid-air collision with https://codereview.chromium.org/2483243003 Created 4 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. 2 * Copyright (C) 2006 Apple Computer, Inc.
3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. 3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 2001 mozilla.org 5 * Portions are Copyright (C) 2001 mozilla.org
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Stuart Parmenter <stuart@mozilla.com> 8 * Stuart Parmenter <stuart@mozilla.com>
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 154
155 if ((colorType & PNG_COLOR_MASK_COLOR) && !m_ignoreColorSpace) { 155 if ((colorType & PNG_COLOR_MASK_COLOR) && !m_ignoreColorSpace) {
156 // We only support color profiles for color PALETTE and RGB[A] PNG. 156 // We only support color profiles for color PALETTE and RGB[A] PNG.
157 // Supporting color profiles for gray-scale images is slightly tricky, at 157 // Supporting color profiles for gray-scale images is slightly tricky, at
158 // least using the CoreGraphics ICC library, because we expand gray-scale 158 // least using the CoreGraphics ICC library, because we expand gray-scale
159 // images to RGB but we do not similarly transform the color profile. We'd 159 // images to RGB but we do not similarly transform the color profile. We'd
160 // either need to transform the color profile or we'd need to decode into a 160 // either need to transform the color profile or we'd need to decode into a
161 // gray-scale image buffer and hand that to CoreGraphics. 161 // gray-scale image buffer and hand that to CoreGraphics.
162 sk_sp<SkColorSpace> colorSpace = readColorSpace(png, info); 162 sk_sp<SkColorSpace> colorSpace = readColorSpace(png, info);
163 if (colorSpace) { 163 if (colorSpace) {
164 setColorSpaceAndComputeTransform(colorSpace); 164 setEmbeddedColorSpace(colorSpace);
165 } 165 }
166 } 166 }
167 167
168 if (!hasEmbeddedColorSpace()) { 168 if (!hasEmbeddedColorSpace()) {
169 // TODO (msarett): 169 // TODO (msarett):
170 // Applying the transfer function (gamma) should be handled by 170 // Applying the transfer function (gamma) should be handled by
171 // SkColorSpaceXform. Here we always convert to a transfer function that 171 // SkColorSpaceXform. Here we always convert to a transfer function that
172 // is a 2.2 exponential. This is a little strange given that the dst 172 // is a 2.2 exponential. This is a little strange given that the dst
173 // transfer function is not necessarily a 2.2 exponential. 173 // transfer function is not necessarily a 2.2 exponential.
174 // TODO (msarett): 174 // TODO (msarett):
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 // has failed. 381 // has failed.
382 if (!m_reader->decode(*m_data, onlySize) && isAllDataReceived()) 382 if (!m_reader->decode(*m_data, onlySize) && isAllDataReceived())
383 setFailed(); 383 setFailed();
384 384
385 // If decoding is done or failed, we don't need the PNGImageReader anymore. 385 // If decoding is done or failed, we don't need the PNGImageReader anymore.
386 if (isComplete(this) || failed()) 386 if (isComplete(this) || failed())
387 m_reader.reset(); 387 m_reader.reset();
388 } 388 }
389 389
390 } // namespace blink 390 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698