[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 언어를 활용하여 다양한 이미지 처리 작업을 수행할 수 있습니다.