package main import ( "image" "image/color" ) func setAlpha(path string, alpha int) error { src, err := decodeImage(path) if err != nil { return err } bounds := src.Bounds() dst := image.NewNRGBA(bounds) for y := bounds.Min.Y; y < bounds.Max.Y; y++ { for x := bounds.Min.X; x < bounds.Max.X; x++ { c := color.NRGBAModel.Convert(src.At(x, y)).(color.NRGBA) if c.A > 0 { c.A = uint8(alpha) } dst.Set(x, y, c) } } return encodePNG(path, dst) }