color from hex handles # now

This commit is contained in:
Will Charczuk 2023-11-04 09:44:19 -07:00
parent 7281bbdfa8
commit dd823617d9
2 changed files with 14 additions and 4 deletions

View file

@ -3,6 +3,7 @@ package drawing
import ( import (
"fmt" "fmt"
"strconv" "strconv"
"strings"
) )
var ( var (
@ -31,7 +32,12 @@ func parseHex(hex string) uint8 {
} }
// ColorFromHex returns a color from a css hex code. // ColorFromHex returns a color from a css hex code.
//
// NOTE: it will trim a leading '#' character if present.
func ColorFromHex(hex string) Color { func ColorFromHex(hex string) Color {
if strings.HasPrefix(hex, "#") {
hex = strings.TrimPrefix(hex, "#")
}
var c Color var c Color
if len(hex) == 3 { if len(hex) == 3 {
c.R = parseHex(string(hex[0])) * 0x11 c.R = parseHex(string(hex[0])) * 0x11

View file

@ -9,8 +9,6 @@ import (
) )
func TestColorFromHex(t *testing.T) { func TestColorFromHex(t *testing.T) {
// replaced new assertions helper
white := ColorFromHex("FFFFFF") white := ColorFromHex("FFFFFF")
testutil.AssertEqual(t, ColorWhite, white) testutil.AssertEqual(t, ColorWhite, white)
@ -42,9 +40,15 @@ func TestColorFromHex(t *testing.T) {
testutil.AssertEqual(t, ColorBlue, shortBlue) testutil.AssertEqual(t, ColorBlue, shortBlue)
} }
func TestColorFromAlphaMixedRGBA(t *testing.T) { func TestColorFromHex_handlesHash(t *testing.T) {
// replaced new assertions helper withHash := ColorFromHex("#FF0000")
testutil.AssertEqual(t, ColorRed, withHash)
withoutHash := ColorFromHex("#FF0000")
testutil.AssertEqual(t, ColorRed, withoutHash)
}
func TestColorFromAlphaMixedRGBA(t *testing.T) {
black := ColorFromAlphaMixedRGBA(color.Black.RGBA()) black := ColorFromAlphaMixedRGBA(color.Black.RGBA())
testutil.AssertTrue(t, black.Equals(ColorBlack), black.String()) testutil.AssertTrue(t, black.Equals(ColorBlack), black.String())