func (c1 Color) BlendRgb(c2 Color, t float64) Color {
    return Color{c1.R + t*(c2.R - c1.R),
                 c1.G + t*(c2.G - c1.G),
                 c1.B + t*(c2.B - c1.B)}
}
You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl.
package colorful
import(
    "fmt"
    "math"
)
type Color struct {
    R, G, B float64
}
func (col Color) RGBA() (r, g, b, a uint32) {
    r = uint32(col.R*65535.0)
    g = uint32(col.G*65535.0)
    b = uint32(col.B*65535.0)
    a = 0xFFFF
    return
}
func (col Color) RGB255() (r, g, b uint8) {
    r = uint8(col.R*255.0)
    g = uint8(col.G*255.0)
    b = uint8(col.B*255.0)
    return
}
const Delta = 1.0/255.0
var D65 = [3]float64{0.95047, 1.00000, 1.08883}
var D50 = [3]float64{0.96422, 1.00000, 0.82521}
func (c Color) IsValid() bool {
    return 0.0 <= c.R && c.R <= 1.0 &&
           0.0 <= c.G && c.G <= 1.0 &&
           0.0 <= c.B && c.B <= 1.0
}
func clamp01(v float64) float64 {
    return math.Max(0.0, math.Min(v, 1.0))
}
func (c Color) Clamped() Color {
    return Color{clamp01(c.R), clamp01(c.G), clamp01(c.B)}
}
func sq(v float64) float64 {
    return v * v;
}
func cub(v float64) float64 {
    return v * v * v;
}
func (c1 Color) DistanceRgb(c2 Color) float64 {
    return math.Sqrt(sq(c1.R-c2.R) + sq(c1.G-c2.G) + sq(c1.B-c2.B))
}
func (c1 Color) AlmostEqualRgb(c2 Color) bool {
    return math.Abs(c1.R - c2.R) +
           math.Abs(c1.G - c2.G) +
           math.Abs(c1.B - c2.B) < 3.0*Delta
}