| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef BASE_GFX_IMAGE_OPERATIONS_H__ | |
| 6 #define BASE_GFX_IMAGE_OPERATIONS_H__ | |
| 7 | |
| 8 #include "base/basictypes.h" | |
| 9 #include "base/gfx/rect.h" | |
| 10 | |
| 11 class SkBitmap; | |
| 12 | |
| 13 namespace gfx { | |
| 14 | |
| 15 class ImageOperations { | |
| 16 public: | |
| 17 enum ResizeMethod { | |
| 18 // Box filter. This is a weighted average of all of the pixels touching | |
| 19 // the destination pixel. For enlargement, this is nearest neighbor. | |
| 20 // | |
| 21 // You probably don't want this, it is here for testing since it is easy to | |
| 22 // compute. Use RESIZE_LANCZOS3 instead. | |
| 23 RESIZE_BOX, | |
| 24 | |
| 25 // 3-cycle Lanczos filter. This is tall in the middle, goes negative on | |
| 26 // each side, then oscillates 2 more times. It gives nice sharp edges. | |
| 27 RESIZE_LANCZOS3, | |
| 28 }; | |
| 29 | |
| 30 // Resizes the given source bitmap using the specified resize method, so that | |
| 31 // the entire image is (dest_size) big. The dest_subset is the rectangle in | |
| 32 // this destination image that should actually be returned. | |
| 33 // | |
| 34 // The output image will be (dest_subset.width(), dest_subset.height()). This | |
| 35 // will save work if you do not need the entire bitmap. | |
| 36 // | |
| 37 // The destination subset must be smaller than the destination image. | |
| 38 static SkBitmap Resize(const SkBitmap& source, | |
| 39 ResizeMethod method, | |
| 40 const Size& dest_size, | |
| 41 const Rect& dest_subset); | |
| 42 | |
| 43 // Alternate version for resizing and returning the entire bitmap rather than | |
| 44 // a subset. | |
| 45 static SkBitmap Resize(const SkBitmap& source, | |
| 46 ResizeMethod method, | |
| 47 const Size& dest_size); | |
| 48 | |
| 49 | |
| 50 // Create a bitmap that is a blend of two others. The alpha argument | |
| 51 // specifies the opacity of the second bitmap. The provided bitmaps must | |
| 52 // use have the kARGB_8888_Config config and be of equal dimensions. | |
| 53 static SkBitmap CreateBlendedBitmap(const SkBitmap& first, | |
| 54 const SkBitmap& second, | |
| 55 double alpha); | |
| 56 private: | |
| 57 ImageOperations(); // Class for scoping only. | |
| 58 }; | |
| 59 | |
| 60 } // namespace gfx | |
| 61 | |
| 62 #endif // BASE_GFX_IMAGE_OPERATIONS_H__ | |
| 63 | |
| OLD | NEW |