Golang 이미지 조작: 밝기와 대비를 조정하는 방법
소개:
이미지 처리에서 이미지의 밝기와 대비를 조정하는 것은 매우 일반적인 작업입니다. 밝기를 조정하여 이미지를 더 밝게 또는 더 어둡게 만들 수 있습니다. 그리고 대비를 조정하여 이미지의 색상 차이를 늘리거나 줄일 수 있습니다. 이 글에서는 Golang을 사용하여 이미지의 밝기와 대비를 조정하는 방법을 소개하고 코드 예제를 제공합니다.
import ( "image" "image/color" _ "image/jpeg" _ "image/png" "os" )
func loadImage(path string) (image.Image, error) { file, err := os.Open(path) if err != nil { return nil, err } defer file.Close() img, _, err := image.Decode(file) if err != nil { return nil, err } return img, nil }
func adjustBrightness(img image.Image, level int) image.Image { bounds := img.Bounds() dest := image.NewRGBA(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() r = uint32((int(r) * level) / 100) g = uint32((int(g) * level) / 100) b = uint32((int(b) * level) / 100) newColor := color.RGBA64{uint16(r), uint16(g), uint16(b), uint16(a)} dest.Set(x, y, newColor) } } return dest }
위 코드에서는 루프를 사용하여 이미지의 각 픽셀을 반복하고 주어진 밝기 수준에 따라 각 픽셀의 RGB 구성 요소를 조정합니다.
func adjustContrast(img image.Image, level int) image.Image { bounds := img.Bounds() dest := image.NewRGBA(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() r = uint32(128 + (int(r)-128)*level/100) g = uint32(128 + (int(g)-128)*level/100) b = uint32(128 + (int(b)-128)*level/100) newColor := color.RGBA64{uint16(r), uint16(g), uint16(b), uint16(a)} dest.Set(x, y, newColor) } } return dest }
위 코드에서는 루프를 사용하여 이미지의 각 픽셀을 반복하고 주어진 대비 수준에 따라 각 픽셀의 RGB 구성 요소를 조정합니다.
func main() { img, err := loadImage("input.jpg") if err != nil { fmt.Println("Failed to load image:", err) return } brightImg := adjustBrightness(img, 150) contrastImg := adjustContrast(img, 200) saveImage(brightImg, "bright_output.jpg") saveImage(contrastImg, "contrast_output.jpg") }
위 코드에서는 먼저 loadImage 함수를 사용하여 입력 이미지를 로드한 다음 각각 adjustBrightness 및 adjustContrast 함수를 호출하여 이미지의 밝기와 대비를 조정합니다. 마지막으로 saveImage 함수를 사용하여 조정된 이미지를 파일에 저장합니다.
요약:
이 글에서는 Golang을 사용하여 이미지 밝기와 대비를 조정하는 방법을 소개하고 해당 코드 예제를 제공합니다. 밝기와 대비를 조정함으로써 이미지의 시각적 효과를 향상시키고 이미지 처리에 더 많은 기술을 적용할 수 있습니다. Golang의 이미지 처리 라이브러리를 사용하면 이러한 작업을 쉽게 구현하고 자체 프로젝트에 적용할 수 있습니다.
위 내용은 Golang 이미지 조작: 밝기와 대비를 조정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!