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

Side by Side Diff: third_party/WebKit/Source/platform/image-decoders/bmp/BMPImageReader.h

Issue 2756463003: Remove opaque alpha channel special case (Closed)
Patch Set: Checking if JPEGImageDecoder::OutputScanlines()'s SetHasAlpha(true) is under test Created 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved. 2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 // Returns the value of the desired component (0, 1, 2, 3 == R, G, B, A) 234 // Returns the value of the desired component (0, 1, 2, 3 == R, G, B, A)
235 // in the given pixel data. 235 // in the given pixel data.
236 inline unsigned GetComponent(uint32_t pixel, int component) const { 236 inline unsigned GetComponent(uint32_t pixel, int component) const {
237 uint8_t value = 237 uint8_t value =
238 (pixel & bit_masks_[component]) >> bit_shifts_right_[component]; 238 (pixel & bit_masks_[component]) >> bit_shifts_right_[component];
239 return lookup_table_addresses_[component] 239 return lookup_table_addresses_[component]
240 ? lookup_table_addresses_[component][value] 240 ? lookup_table_addresses_[component][value]
241 : value; 241 : value;
242 } 242 }
243 243
244 inline bool IsAlphaSupported() const { return bit_masks_[3]; }
245
244 inline unsigned GetAlpha(uint32_t pixel) const { 246 inline unsigned GetAlpha(uint32_t pixel) const {
245 // For images without alpha, return alpha of 0xff. 247 DCHECK(IsAlphaSupported());
246 return bit_masks_[3] ? GetComponent(pixel, 3) : 0xff; 248 return GetComponent(pixel, 3);
247 } 249 }
248 250
249 // Sets the current pixel to the color given by |color_index|. This also 251 // Sets the current pixel to the color given by |color_index|. This also
250 // increments the relevant local variables to move the current pixel 252 // increments the relevant local variables to move the current pixel
251 // right by one. 253 // right by one.
252 inline void SetI(size_t color_index) { 254 inline void SetI(size_t color_index) {
253 SetRGBA(color_table_[color_index].rgb_red, 255 SetRGBA(color_table_[color_index].rgb_red,
254 color_table_[color_index].rgb_green, 256 color_table_[color_index].rgb_green,
255 color_table_[color_index].rgb_blue, 0xff); 257 color_table_[color_index].rgb_blue, 0xff);
256 } 258 }
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 // ICOs store a 1bpp "mask" immediately after the main bitmap image data 363 // ICOs store a 1bpp "mask" immediately after the main bitmap image data
362 // (and, confusingly, add its height to the biHeight value in the info 364 // (and, confusingly, add its height to the biHeight value in the info
363 // header, thus doubling it). If |is_in_ico_| is true, this variable tracks 365 // header, thus doubling it). If |is_in_ico_| is true, this variable tracks
364 // whether we've begun decoding this mask yet. 366 // whether we've begun decoding this mask yet.
365 bool decoding_and_mask_; 367 bool decoding_and_mask_;
366 }; 368 };
367 369
368 } // namespace blink 370 } // namespace blink
369 371
370 #endif 372 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698