You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
750 B
37 lines
750 B
package convert
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// ColorHexToRGB convert hex color to rgb color
|
|
func (c *Conv) ColorHexToRGB(colorHex string) (red, green, blue int) {
|
|
colorHex = strings.TrimPrefix(colorHex, "#")
|
|
color64, err := strconv.ParseInt(colorHex, 16, 32)
|
|
if err != nil {
|
|
return
|
|
}
|
|
color := int(color64)
|
|
return color >> 16, (color & 0x00FF00) >> 8, color & 0x0000FF
|
|
}
|
|
|
|
// ColorRGBToHex convert rgb color to hex color
|
|
func (c *Conv) ColorRGBToHex(red, green, blue int) string {
|
|
r := strconv.FormatInt(int64(red), 16)
|
|
g := strconv.FormatInt(int64(green), 16)
|
|
b := strconv.FormatInt(int64(blue), 16)
|
|
|
|
if len(r) == 1 {
|
|
r = "0" + r
|
|
}
|
|
if len(g) == 1 {
|
|
g = "0" + g
|
|
}
|
|
if len(b) == 1 {
|
|
b = "0" + b
|
|
}
|
|
|
|
return "#" + r + g + b
|
|
}
|