diff --git a/pkg/ascii/ascii.go b/pkg/ascii/ascii.go index c58eca92..6636e278 100644 --- a/pkg/ascii/ascii.go +++ b/pkg/ascii/ascii.go @@ -156,7 +156,7 @@ const x256b = "\x00\x00\x00\x00\x80\x80\x80\xc0\x80\x00\x00\x00\xff\xff\xff\xff\ func xterm256color(r, g, b uint8, n int) (index uint8) { best := uint16(0xFFFF) for i := 0; i < n; i++ { - diff := uint16(r-x256r[i]) + uint16(g-x256g[i]) + uint16(b-x256b[i]) + diff := sqDiff(r, x256r[i]) + sqDiff(g, x256g[i]) + sqDiff(b, x256b[i]) if diff < best { best = diff index = uint8(i) @@ -164,3 +164,10 @@ func xterm256color(r, g, b uint8, n int) (index uint8) { } return } + +// sqDiff - just like from image/color/color.go +func sqDiff(x, y uint8) uint16 { + d := uint16(x - y) + //return d + return (d * d) >> 2 +}