change colors to work in uint32 and Rgba type
This commit is contained in:
+16
-8
@@ -14,20 +14,28 @@ func ConvertStringUint32(s string) (uint32, error) {
|
||||
return uint32(v), err
|
||||
}
|
||||
|
||||
func ConvertStringToRgb(str string) ([3]uint8, error) {
|
||||
parts := strings.SplitN(str, ",", 4)
|
||||
if len(parts) != 3 {
|
||||
return [3]uint8{}, fmt.Errorf("invalid rgb")
|
||||
func ConvertStringToRgba(str string) (*Rgba, error) {
|
||||
parts := strings.SplitN(str, ",", 5)
|
||||
if len(parts) != 4 {
|
||||
return nil, fmt.Errorf("invalid rgba")
|
||||
}
|
||||
var rgb [3]uint8
|
||||
rgba := &Rgba{}
|
||||
for i, p := range parts {
|
||||
n, err := strconv.ParseUint(strings.TrimSpace(p), 10, 8)
|
||||
if err != nil {
|
||||
return [3]uint8{}, fmt.Errorf("invalid component %d: %w", i, err)
|
||||
return nil, fmt.Errorf("invalid component %d: %w", i, err)
|
||||
}
|
||||
rgb[i] = uint8(n)
|
||||
rgba[i] = uint8(n)
|
||||
}
|
||||
return rgb, nil
|
||||
return rgba, nil
|
||||
}
|
||||
|
||||
func RgbaToUint32(r *Rgba) uint32 {
|
||||
return uint32(r[0])<<24 | uint32(r[1])<<16 | uint32(r[2])<<8 | uint32(r[3])
|
||||
}
|
||||
|
||||
func Uint32ToRgba(v uint32) *Rgba {
|
||||
return &Rgba{uint8(v >> 24), uint8(v >> 16), uint8(v >> 8), uint8(v)}
|
||||
}
|
||||
|
||||
func ConvertStringUuid(str string) (uuid.UUID, error) {
|
||||
|
||||
Reference in New Issue
Block a user