//go:build ignore package main import ( "image" "image/color" "image/png" "os" ) type Reshade struct{ image.Image } func (rs Reshade) ColorModel() color.Model { return rs.Image.ColorModel() } func (rs Reshade) Bounds() image.Rectangle { return rs.Image.Bounds() } func (rs Reshade) At(x, y int) color.Color { c := rs.Image.At(x, y) r, g, b, a := c.RGBA() // minus 19 blue return color.RGBA{ uint8(r >> 8), uint8(g >> 8), uint8(b>>8) - 8*8, uint8(a >> 8), } } func check(err error) { if err != nil { panic(err) } } func main() { img, err := png.Decode(os.Stdin) check(err) err = png.Encode(os.Stdout, Reshade{img}) check(err) }