🔥 image 인터페이스
236자
3분
Go 언어의 image
패키지는 이미지 처리를 위한 강력한 도구를 제공합니다. 이 패키지는 이미지를 나타내는 Image
인터페이스를 정의하고 있죠.
Package image에서 Image
인터페이스를 다음과 같이 정의하고 있습니다:
package image type Image interface { ColorModel() color.Model Bounds() Rectangle At(x, y int) color.Color }
go
참고: Bounds
메서드의 Rectangle
반환 값은 실제로 image.Rectangle
입니다. 이는 image
패키지 내부에서 선언되어 있기 때문이에요.
(자세한 내용은 공식 문서를 참조하세요.)
color.Color
와 color.Model
타입 역시 인터페이스이지만, 여기서는 미리 정의된 구현체인 color.RGBA
와 color.RGBAModel
을 사용할 거예요. 이러한 인터페이스와 타입은 image/color 패키지에 명시되어 있습니다.
이제 image
패키지를 사용하여 간단한 예제를 만들어 보겠습니다:
package main import ( "fmt" "image" ) func main() { // image.Rect()를 사용하여 100x100 크기의 이미지 영역을 정의합니다. // 이 영역은 (0, 0)에서 시작하여 (100, 100)까지 확장됩니다. rect := image.Rect(0, 0, 100, 100) // image.NewRGBA()를 사용하여 RGBA 색상 모델을 가진 새 이미지를 생성합니다. // 생성된 이미지의 크기는 앞서 정의한 rect와 같습니다. m := image.NewRGBA(rect) // 이미지의 경계(Bounds)를 출력합니다. // 출력 결과: (0,0)-(100,100) fmt.Println(m.Bounds()) // 이미지의 (0, 0) 위치에 있는 픽셀의 RGBA 값을 출력합니다. // 새로 생성된 이미지이므로, 모든 픽셀의 초기값은 (0, 0, 0, 0)입니다. fmt.Println(m.At(0, 0).RGBA()) }
go
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다:
(0,0)-(100,100) 0 0 0 0
text
이 예제에서는 image.Rect()
를 사용하여 이미지의 경계를 정의하고, image.NewRGBA()
를 통해 새로운 RGBA 이미지를 생성했어요. 그리고 Bounds()
메서드로 이미지의 경계를 출력하고, At()
메서드로 특정 위치의 픽셀 값을 확인했습니다.
이처럼 Go 언어의 image
패키지를 활용하면 이미지를 쉽게 다룰 수 있어요.