code: func Invert(img image.Image) *image.NRGBA {
  	src := newScanner(img)
  	dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h))
  	parallel(0, src.h, func(ys <-chan int) {
  		for y := range ys {
  			i := y * dst.Stride
  			src.scan(0, y, src.w, y+1, dst.Pix[i:i+src.w*4])
  			for x := 0; x < src.w; x++ {
  				d := dst.Pix[i : i+3 : i+3]
  				d[0] = 255 - d[0]
  				d[1] = 255 - d[1]
  				d[2] = 255 - d[2]
  				i += 4
  			}
  		}
  	})
  	return dst
  }
docs: // Invert produces an inverted (negated) version of the image.