[go] go 언어에서의 이미지 밝기 조절
이미지 처리는 많은 컴퓨터 비전 및 그래픽 애플리케이션에서 중요한 요소입니다. Go 언어에서 이미지의 밝기를 조절하는 방법을 살펴보겠습니다.
이미지 밝기 조절 기초
이미지의 밝기를 조절하려면 픽셀 값에 대한 조정이 필요합니다. 이미지의 각 픽셀은 적색(Red), 녹색(Green), 청색(Blue) 채널의 값을 갖습니다. 밝기를 조절하려면 각 채널의 값을 조정하여 이미지를 더 밝게 또는 어둡게 만들 수 있습니다.
Go 언어를 활용한 이미지 밝기 조절
Go 언어에서 이미지 밝기 조절을 위해서는 image
패키지를 사용할 수 있습니다. 먼저 이미지를 로드한 후 각 픽셀의 값을 조정하여 새로운 이미지를 생성할 수 있습니다. 아래는 이미지의 밝기를 50% 만큼 높이는 예제 코드입니다.
package main
import (
"image"
"image/color"
"image/jpeg"
"os"
)
func main() {
// 이미지 파일을 열기
file, err := os.Open("input.jpg")
if err != nil {
panic(err)
}
defer file.Close()
// 이미지 디코딩
img, _, err := image.Decode(file)
if err != nil {
panic(err)
}
// 이미지의 각 픽셀 값 밝기 조절
bounds := img.Bounds()
newImg := image.NewRGBA(bounds)
for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
for x := bounds.Min.X; x < bounds.Max.X; x++ {
oldPixel := img.At(x, y)
r, g, b, a := oldPixel.RGBA()
newR := uint8(r >> 8 * 1.5)
newG := uint8(g >> 8 * 1.5)
newB := uint8(b >> 8 * 1.5)
newPixel := color.RGBA{newR, newG, newB, uint8(a)}
newImg.Set(x, y, newPixel)
}
}
// 새로운 이미지를 파일로 저장
out, err := os.Create("output.jpg")
if err != nil {
panic(err)
}
defer out.Close()
jpeg.Encode(out, newImg, nil)
}
위의 코드에서는 먼저 이미지 파일을 열고 디코딩한 후, 각 픽셀 값에 대한 밝기 조절을 진행하고 새로운 이미지를 파일로 저장하는 과정을 보여줍니다.
이 코드를 실행하면 input.jpg 파일을 읽어 밝기를 50% 증가시킨 후 output.jpg 파일로 저장됩니다.
이와 같이 Go 언어를 사용하여 이미지의 밝기를 조절할 수 있으며, 심층적인 이미지 처리 작업을 수행할 수 있습니다.
결론
Go 언어를 사용하여 이미지 밝기를 조절하는 방법을 살펴보았습니다. 이미지 처리는 컴퓨터 비전 및 그래픽 애플리케이션에서 중요한 기술이며, Go 언어를 활용하여 다양한 이미지 처리 작업을 수행할 수 있습니다.