[go] go 언어에서의 컬러링 처리
Go 언어에서 이미지 처리를 하는 경우, 컬러링은 중요한 부분 중 하나입니다. 컬러링 처리를 위해 Go 언어에서는 image/color
패키지를 사용할 수 있습니다. 이 패키지를 이용하여 이미지의 각 픽셀에 접근하고 컬러 값을 변경할 수 있습니다.
1. 이미지 로딩
먼저, 이미지를 로딩해야 합니다. Go 언어에서는 image
패키지를 사용하여 이미지를 로딩할 수 있습니다. 예를 들어, JPEG 파일을 로딩하는 방법은 다음과 같습니다.
package main
import (
"image"
_ "image/jpeg"
"os"
)
func main() {
file, err := os.Open("input.jpg")
if err != nil {
// handle error
}
defer file.Close()
img, _, err := image.Decode(file)
if err != nil {
// handle error
}
// 이미지 처리
}
2. 컬러링 처리
로딩한 이미지를 처리하기 전에, 우선 이미지 정보를 가져와야 합니다. 이를 위해 NRGBA
형식의 이미지를 생성하고 각 픽셀의 컬러 값을 변경할 수 있습니다.
bounds := img.Bounds()
rgba := image.NewNRGBA(bounds)
for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
for x := bounds.Min.X; x < bounds.Max.X; x++ {
oldColor := img.At(x, y)
r, g, b, a := oldColor.RGBA()
// 컬러 처리
// ...
newColor := color.NRGBA{
R: uint8(r >> 8),
G: uint8(g >> 8),
B: uint8(b >> 8),
A: uint8(a >> 8),
}
rgba.SetNRGBA(x, y, newColor)
}
}
이제 rgba
이미지를 저장하거나 추가적인 처리를 할 수 있습니다.
3. 결과 저장
컬러링 처리가 완료된 이미지를 파일로 저장하는 방법은 다음과 같습니다.
outputFile, err := os.Create("output.jpg")
if err != nil {
// handle error
}
defer outputFile.Close()
// JPEG으로 저장
jpeg.Encode(outputFile, rgba, nil)
이제 컬러링 처리가 완료된 이미지가 “output.jpg” 파일로 저장됩니다.
이와 같이, Go 언어에서는 image/color
와 image/jpeg
등의 패키지를 활용하여 이미지의 컬러링 처리를 쉽게 할 수 있습니다.
위 내용은 Go 언어 공식 문서를 참고하여 작성되었습니다.