OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_GFX_IMAGE_IMAGE_UTIL_H_ | 5 #ifndef UI_GFX_IMAGE_IMAGE_UTIL_H_ |
6 #define UI_GFX_IMAGE_IMAGE_UTIL_H_ | 6 #define UI_GFX_IMAGE_IMAGE_UTIL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <vector> | 10 #include <vector> |
(...skipping 15 matching lines...) Expand all Loading... |
26 // Fills the |dst| vector with JPEG-encoded bytes of the 1x representation of | 26 // Fills the |dst| vector with JPEG-encoded bytes of the 1x representation of |
27 // the given image. | 27 // the given image. |
28 // Returns true if the image has a 1x representation and the 1x representation | 28 // Returns true if the image has a 1x representation and the 1x representation |
29 // was encoded successfully. | 29 // was encoded successfully. |
30 // |quality| determines the compression level, 0 == lowest, 100 == highest. | 30 // |quality| determines the compression level, 0 == lowest, 100 == highest. |
31 // Returns true if the Image was encoded successfully. | 31 // Returns true if the Image was encoded successfully. |
32 GFX_EXPORT bool JPEG1xEncodedDataFromImage(const Image& image, | 32 GFX_EXPORT bool JPEG1xEncodedDataFromImage(const Image& image, |
33 int quality, | 33 int quality, |
34 std::vector<unsigned char>* dst); | 34 std::vector<unsigned char>* dst); |
35 | 35 |
36 // Returns the visible (non-transparent) width of the 1x rep of the given | 36 // Computes the width of any nearly-transparent regions at the sides of the |
37 // image. If the image has no transparency, the leading value will be 0 and | 37 // image and returns them in |left| and |right|. This checks each column of |
38 // the trailing will be the image width. Return values are in the 1x width | 38 // pixels from the outsides in, looking for anything with alpha above a |
39 // pixel units. Margins are given in 0-based column format. So if the image | 39 // reasonably small value. For a fully-opaque image, the margins will thus be |
40 // has only transparent pixels in columns 0, 1, 2, 3, then the leading value | 40 // (0, 0); for a fully-transparent image, the margins will be |
41 // will be 4. Similarly, if there are all transparent pixels in column | 41 // (width / 2, width / 2), with |left| getting the extra pixel for odd widths. |
42 // width-2, width-1, then the trailing margin value will be width-3. | 42 GFX_EXPORT void GetVisibleMargins(const ImageSkia& image, |
43 // Returns true if the value is computed from opacity, false if it is a | 43 int* left, |
44 // default value because of null image, missing Rep, etc. | 44 int* right); |
45 // This method is only suitable for fairly small images (i.e. 16x16). | |
46 // The margins for a completely transparent image will be w/2-1, w/2, but this | |
47 // will be an expensive operation: it isn't expected that it will be frequently | |
48 // calculated. | |
49 GFX_EXPORT bool VisibleMargins(const ImageSkia& image, | |
50 int* leading, int* trailing); | |
51 | 45 |
52 } // namespace gfx | 46 } // namespace gfx |
53 | 47 |
54 #endif // UI_GFX_IMAGE_IMAGE_UTIL_H_ | 48 #endif // UI_GFX_IMAGE_IMAGE_UTIL_H_ |
OLD | NEW |