1 // Copyright 2014 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.
5 #include "extensions/browser/image_util.h"
10 #include "base/strings/string_number_conversions.h"
11 #include "third_party/skia/include/core/SkColor.h"
13 namespace extensions
{
14 namespace image_util
{
16 bool ParseCSSColorString(const std::string
& color_string
, SkColor
* result
) {
17 std::string formatted_color
;
18 // Check the string for incorrect formatting.
19 if (color_string
.empty() || color_string
[0] != '#')
22 // Convert the string from #FFF format to #FFFFFF format.
23 if (color_string
.length() == 4) {
24 for (size_t i
= 1; i
< 4; ++i
) {
25 formatted_color
+= color_string
[i
];
26 formatted_color
+= color_string
[i
];
28 } else if (color_string
.length() == 7) {
29 formatted_color
= color_string
.substr(1, 6);
34 // Convert the string to an integer and make sure it is in the correct value
36 std::vector
<uint8_t> color_bytes
;
37 if (!base::HexStringToBytes(formatted_color
, &color_bytes
))
40 *result
= SkColorSetARGB(255, color_bytes
[0], color_bytes
[1], color_bytes
[2]);
44 } // namespace image_util
45 } // namespace extensions