Chromium Code Reviews| Index: ui/message_center/views/small_image_mask.cc |
| diff --git a/ui/message_center/views/small_image_mask.cc b/ui/message_center/views/small_image_mask.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4e721dd0ee3ba70e514e9d6e1f6a8649d1e1bcfd |
| --- /dev/null |
| +++ b/ui/message_center/views/small_image_mask.cc |
| @@ -0,0 +1,44 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "ui/message_center/views/small_image_mask.h" |
| + |
| +#include "ui/gfx/image/image_skia_operations.h" |
| + |
| +// Take small_iamge as the alpha channel, mask it with the foreground, |
| +// then add the masked foreground on top of the background |
| +const gfx::ImageSkia GetMaskedSmallImage(const gfx::ImageSkia& small_image) { |
|
dewittj
2014/06/16 18:09:55
I would just move this into notification_view.cc i
liyanhou
2014/06/27 03:18:40
Done.
|
| + int width = small_image.width(); |
| + int height = small_image.height(); |
| + |
| + // Background color grey |
| + const gfx::ImageSkia background = CreateImage(width, height, 163, 163, 163); |
|
dewittj
2014/06/16 18:09:55
I would suggest you use an SkColor in these functi
liyanhou
2014/06/27 03:18:40
Done.
|
| + // Foreground color white |
| + const gfx::ImageSkia foreground = CreateImage(width, height, 255, 255, 255); |
| + const gfx::ImageSkia masked_small_image = |
| + gfx::ImageSkiaOperations::CreateMaskedImage(foreground, small_image); |
| + return gfx::ImageSkiaOperations::CreateSuperimposedImage(background, |
| + masked_small_image); |
| +} |
| + |
| +const gfx::ImageSkia CreateImage(int width, |
| + int height, |
| + int red, |
| + int green, |
| + int blue) { |
| + return gfx::ImageSkia::CreateFrom1xBitmap( |
| + CreateBitmap(width, height, red, green, blue)); |
| +} |
| + |
| +const SkBitmap CreateBitmap(int width, |
| + int height, |
| + int red, |
| + int green, |
| + int blue) { |
| + SkBitmap bitmap; |
| + bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
| + bitmap.allocPixels(); |
| + bitmap.eraseRGB(red, green, blue); |
| + return bitmap; |
| +} |