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

Side by Side Diff: src/ports/SkImageDecoder_WIC.cpp

Issue 16410009: Add an option to create unpremultiplied bitmaps. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Fix for andriod only code. Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « src/images/SkScaledBitmapSampler.cpp ('k') | tests/ImageDecodingTest.cpp » ('j') | 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 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #define WIN32_LEAN_AND_MEAN 10 #define WIN32_LEAN_AND_MEAN
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 return false; 176 return false;
177 } 177 }
178 } 178 }
179 179
180 //Create a format converter. 180 //Create a format converter.
181 SkTScopedComPtr<IWICFormatConverter> piFormatConverter; 181 SkTScopedComPtr<IWICFormatConverter> piFormatConverter;
182 if (SUCCEEDED(hr)) { 182 if (SUCCEEDED(hr)) {
183 hr = piImagingFactory->CreateFormatConverter(&piFormatConverter); 183 hr = piImagingFactory->CreateFormatConverter(&piFormatConverter);
184 } 184 }
185 185
186 GUID destinationPixelFormat;
187 if (this->getRequireUnpremultipliedColors()) {
188 destinationPixelFormat = GUID_WICPixelFormat32bppBGRA;
189 } else {
190 destinationPixelFormat = GUID_WICPixelFormat32bppPBGRA;
191 }
192
186 if (SUCCEEDED(hr)) { 193 if (SUCCEEDED(hr)) {
187 hr = piFormatConverter->Initialize( 194 hr = piFormatConverter->Initialize(
188 piBitmapSourceOriginal.get() //Input bitmap to convert 195 piBitmapSourceOriginal.get() //Input bitmap to convert
189 , GUID_WICPixelFormat32bppPBGRA //Destination pixel format 196 , destinationPixelFormat //Destination pixel format
190 , WICBitmapDitherTypeNone //Specified dither patterm 197 , WICBitmapDitherTypeNone //Specified dither patterm
191 , NULL //Specify a particular palette 198 , NULL //Specify a particular palette
192 , 0.f //Alpha threshold 199 , 0.f //Alpha threshold
193 , WICBitmapPaletteTypeCustom //Palette translation type 200 , WICBitmapPaletteTypeCustom //Palette translation type
194 ); 201 );
195 } 202 }
196 203
197 //Get the BitmapSource interface of the format converter. 204 //Get the BitmapSource interface of the format converter.
198 SkTScopedComPtr<IWICBitmapSource> piBitmapSourceConverted; 205 SkTScopedComPtr<IWICBitmapSource> piBitmapSourceConverted;
199 if (SUCCEEDED(hr)) { 206 if (SUCCEEDED(hr)) {
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 static SkImageDecoder::Format get_format_wic(SkStream* stream) { 436 static SkImageDecoder::Format get_format_wic(SkStream* stream) {
430 SkImageDecoder::Format format; 437 SkImageDecoder::Format format;
431 SkImageDecoder_WIC codec; 438 SkImageDecoder_WIC codec;
432 if (!codec.decodeStream(stream, NULL, SkImageDecoder_WIC::kDecodeFormat_WICM ode, &format)) { 439 if (!codec.decodeStream(stream, NULL, SkImageDecoder_WIC::kDecodeFormat_WICM ode, &format)) {
433 format = SkImageDecoder::kUnknown_Format; 440 format = SkImageDecoder::kUnknown_Format;
434 } 441 }
435 return format; 442 return format;
436 } 443 }
437 444
438 static SkTRegistry<SkImageDecoder::Format, SkStream*> gFormatReg(get_format_wic) ; 445 static SkTRegistry<SkImageDecoder::Format, SkStream*> gFormatReg(get_format_wic) ;
OLDNEW
« no previous file with comments | « src/images/SkScaledBitmapSampler.cpp ('k') | tests/ImageDecodingTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698