Index: ui/gfx/color_utils.h |
diff --git a/ui/gfx/color_utils.h b/ui/gfx/color_utils.h |
index 44302c808c8138c6a2d2702efd17e0ed66631a5a..a13ebb31c7ac2f96f4b47d4b861513f0d6f6cee3 100644 |
--- a/ui/gfx/color_utils.h |
+++ b/ui/gfx/color_utils.h |
@@ -23,14 +23,22 @@ struct HSL { |
// This value is taken from w3c accessibility guidelines. |
const double kMinimumReadableContrastRatio = 4.5f; |
-// Determines the contrast ratio of two colors. |
-GFX_EXPORT double GetContrastRatio(SkColor color_a, SkColor color_b); |
- |
-GFX_EXPORT unsigned char GetLuminanceForColor(SkColor color); |
- |
-// Calculated according to http://www.w3.org/TR/WCAG20/#relativeluminancedef |
+// Determines the contrast ratio of two colors or two relative luminance values |
+// (as computed by RelativeLuminance()), calculated according to |
+// http://www.w3.org/TR/WCAG20/#contrast-ratiodef . |
+GFX_EXPORT double ContrastRatio(SkColor color_a, SkColor color_b); |
danakj
2016/03/04 01:54:49
GetContrastRatio is preferred (verbs not nouns for
Peter Kasting
2016/03/04 02:10:52
That may be true in Blink, but in Chromium Get...(
danakj
2016/03/04 19:05:55
It's the other way. The WebKit style guide says to
Peter Kasting
2016/03/04 20:28:57
I can't find any such text in the Google style gui
danakj
2016/03/04 21:10:00
I'm probably being over sensitive to this cuz all
|
+GFX_EXPORT double ContrastRatio(double luminance_a, double luminance_b); |
+ |
+// The relative luminance of |color|, that is, the weighted sum of the |
+// linearized RGB components, normalized to 0..1, per BT.709. See |
+// http://www.w3.org/TR/WCAG20/#relativeluminancedef . |
GFX_EXPORT double RelativeLuminance(SkColor color); |
+// The luma of |color|, that is, the weighted sum of the gamma-compressed R'G'B' |
+// components, per BT.601, a.k.a. the Y' in Y'UV. See |
+// https://en.wikipedia.org/wiki/Luma_(video). |
+GFX_EXPORT uint8_t Luma(SkColor color); |
+ |
// Note: these transformations assume sRGB as the source color space |
GFX_EXPORT void SkColorToHSL(SkColor c, HSL* hsl); |
GFX_EXPORT SkColor HSLToSkColor(const HSL& hsl, SkAlpha alpha); |
@@ -50,8 +58,8 @@ GFX_EXPORT bool IsWithinHSLRange(const HSL& hsl, |
const HSL& upper_bound); |
// Makes |hsl| valid input for HSLShift(). Sets values of hue, saturation |
-// and luminosity which are outside of the valid range [0, 1] to -1. |
-// -1 is a special value which indicates 'no change'. |
+// and lightness which are outside of the valid range [0, 1] to -1. -1 is a |
+// special value which indicates 'no change'. |
GFX_EXPORT void MakeHSLShiftValid(HSL* hsl); |
// HSL-Shift an SkColor. The shift values are in the range of 0-1, with the |
@@ -70,8 +78,7 @@ GFX_EXPORT void MakeHSLShiftValid(HSL* hsl); |
// 1 = full lightness (make all pixels white). |
GFX_EXPORT SkColor HSLShift(SkColor color, const HSL& shift); |
-// Builds a histogram based on the Y' of the Y'UV representation of |
-// this image. |
+// Builds a histogram based on the Y' of the Y'UV representation of this image. |
GFX_EXPORT void BuildLumaHistogram(const SkBitmap& bitmap, int histogram[256]); |
// Calculates how "boring" an image is. The boring score is the |
@@ -87,25 +94,30 @@ GFX_EXPORT double CalculateBoringScore(const SkBitmap& bitmap); |
GFX_EXPORT SkColor AlphaBlend(SkColor foreground, SkColor background, |
SkAlpha alpha); |
-// Returns true if the luminance of |color| is closer to black than white. |
+// Returns true if the luma of |color| is closer to black than white. |
GFX_EXPORT bool IsDark(SkColor color); |
// Makes a dark color lighter or a light color darker by blending |color| with |
-// white or black depending on its current luminance. |alpha| controls the |
-// amount of white or black that will be alpha-blended into |color|. |
-GFX_EXPORT SkColor BlendTowardOppositeLuminance(SkColor color, SkAlpha alpha); |
- |
-// Given an opaque foreground and background color, try to return a foreground |
-// color that is "readable" over the background color by luma-inverting the |
-// foreground color and then picking whichever foreground color has higher |
-// contrast against the background color. You should not pass colors with |
-// non-255 alpha to this routine, since determining the correct behavior in such |
-// cases can be impossible. |
+// white or black depending on its current luma. |alpha| controls the amount of |
+// white or black that will be alpha-blended into |color|. |
+GFX_EXPORT SkColor BlendTowardOppositeLuma(SkColor color, SkAlpha alpha); |
+ |
+// Given a foreground and background color, try to return a foreground color |
+// that is "readable" over the background color by luma-inverting the foreground |
+// color and then using PickContrastingColor() to pick the one with greater |
+// contrast. During this process, alpha values will be ignored; the returned |
+// color will have the same alpha as |foreground|. |
// |
// NOTE: This won't do anything but waste time if the supplied foreground color |
// has a luma value close to the midpoint (0.5 in the HSL representation). |
GFX_EXPORT SkColor GetReadableColor(SkColor foreground, SkColor background); |
+// Returns whichever of |foreground1| or |foreground2| has higher contrast with |
+// |background|. |
+GFX_EXPORT SkColor PickContrastingColor(SkColor foreground1, |
+ SkColor foreground2, |
+ SkColor background); |
+ |
// Invert a color. |
GFX_EXPORT SkColor InvertColor(SkColor color); |