Golang을 사용하여 사진을 흑백 및 하프톤 효과로 변환하는 방법
지속적인 기술 발전으로 이미지 처리는 점점 더 중요한 분야가 되었습니다. 이미지 처리에서는 컬러 사진을 흑백 또는 하프톤 효과로 변환하는 것이 일반적인 작업입니다. 이 기사에서는 Golang 프로그래밍 언어를 사용하여 사진을 흑백 및 하프톤 효과로 변환하는 방법을 소개합니다.
먼저 필요한 패키지를 가져와야 합니다. Golang에서는 이미지 및 이미지/색상 패키지를 사용하여 이미지 처리 작업을 수행할 수 있습니다. 코드는 다음과 같습니다.
package main import ( "image" "image/color" "image/jpeg" "log" "os" )
다음으로 이미지 파일을 읽는 함수를 정의할 수 있습니다. 코드는 다음과 같습니다:
func loadImage(filename string) (image.Image, error) { file, err := os.Open(filename) if err != nil { return nil, err } defer file.Close() img, err := jpeg.Decode(file) if err != nil { return nil, err } return img, nil }
그런 다음 컬러 사진을 흑백 효과로 변환하는 함수를 정의할 수 있습니다. 이는 이미지의 각 픽셀을 처리하여 달성할 수 있습니다. 코드는 다음과 같습니다:
func toGrayscale(img image.Image) *image.Gray { bounds := img.Bounds() gray := image.NewGray(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) grayColor := color.GrayModel.Convert(oldColor) gray.Set(x, y, grayColor) } } return gray }
다음으로 컬러 사진을 하프톤 효과로 변환하는 함수를 정의할 수 있습니다. 하프톤 효과는 이미지의 각 픽셀을 처리하고 이를 제한된 색상 값 세트로 변환하여 얻을 수 있습니다. 코드는 다음과 같습니다.
func toHalftone(img image.Image) *image.Gray16 { bounds := img.Bounds() halftone := image.NewGray16(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) halftoneColor := color.Gray16Model.Convert(oldColor) halftone.Set(x, y, halftoneColor) } } return halftone }
마지막으로 변환된 이미지를 저장하는 함수를 정의할 수 있습니다. 코드는 다음과 같습니다.
func saveImage(img image.Image, filename string) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() err = jpeg.Encode(file, img, nil) if err != nil { return err } return nil }
이제 위 함수를 호출하고 테스트하는 메인 함수를 작성할 수 있습니다. 코드는 다음과 같습니다.
func main() { // 读取图片文件 img, err := loadImage("input.jpg") if err != nil { log.Fatal(err) } // 转换为黑白效果 gray := toGrayscale(img) err = saveImage(gray, "output_gray.jpg") if err != nil { log.Fatal(err) } // 转换为半色调效果 halftone := toHalftone(img) err = saveImage(halftone, "output_halftone.jpg") if err != nil { log.Fatal(err) } log.Println("图片转换完成") }
위 코드를 실행하면 입력 이미지 파일을 흑백 및 하프톤 효과로 변환하고,output_gray.jpg,output_halftone.jpg 파일로 저장할 수 있습니다.
위는 Golang을 사용하여 사진을 흑백 및 하프톤 효과로 변환하는 방법입니다. 이러한 간단한 코드 예제를 통해 Golang에서 이미지 처리 기능을 쉽게 구현할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!
위 내용은 Golang을 사용하여 사진을 흑백 및 하프톤 효과로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!