image.RGBA 형식은 이미지를 수정하려는 경우 이미지를 메모리에 저장하는 가장 좋은 방법입니다.
Set(x, y int, c color.Color)
불행하게도 모든 디코더는 RGBA 형식으로 이미지를 반환하는 없습니다 : 그것은 픽셀을 설정하기위한 편리한 방법을 가지고
draw.Image 인터페이스를 구현합니다. 그 중 일부는 모든 단일 픽셀을 수정할 수없는 압축 된 형식으로 이미지를 남깁니다. 읽기 전용 유스 케이스가 많으면 빠릅니다. 그러나 이미지를 편집하려면 복사해야 할 수도 있습니다. 예를 들어 :
src, _, err := image.Decode(file)
if err != nil {
log.Fatal(err)
}
rgba, ok := src.(*image.RGBA)
if !ok {
b := src.Bounds()
rgba = image.NewRGBA(image.Rect(0, 0, b.Dx(), b.Dy()))
draw.Draw(rgba, rgba.Bounds(), src, b.Min, draw.Src)
}
// rgba is now a *image.RGBA and can be modified freely
rgba.Set(0, 0, color.RGBA{255, 0, 0, 255})
감사합니다,하지만 난이 – bee
의 차이점은 무엇 하나의 새로운 생성하지, 이미지의 픽셀 '값이 파일에서로드 수정 하시겠습니까? image.Decode를 사용하여 그림을로드하고 적절한 형식을 지정하고 위의 그림과 같은 .Set 메서드를 사용합니다. – zzzz