Golang
[Golang]PNG 파일 JPG 로 변환하기
stayhungri
2022. 6. 24. 13:03
PNG 파일을 JPG 로 변환할 때는 이렇게 하면 됩니다.
PNG -> RGBA -> JPG
코드로 살펴볼게요
func convertPNGtoJPG() {
// PNG 파일을 디코딩합니다.
pngImgFile, err := os.Open("./image/whyoh1.png")
if err != nil {
log.Fatalf("png file not found : %+v", err)
}
defer pngImgFile.Close()
imgSrc, err := png.Decode(pngImgFile)
if err != nil {
log.Fatalf("failed to decode png file %+v", err)
}
// PNG 파일을 RGBA로 바꿉니다. 투명한 뿐은 하얀색으로 처리합니다.
newImg := image.NewRGBA(imgSrc.Bounds())
draw.Draw(newImg, newImg.Bounds(), &image.Uniform{C: color.White}, image.Point{}, draw.Src)
draw.Draw(newImg, newImg.Bounds(), imgSrc, imgSrc.Bounds().Min, draw.Over)
// JPG 형태로 인코딩합니다.
jpgImgFile, err := os.Create("./image/whyoh1.jpg")
if err != nil {
log.Fatalf("failed to create file: %+v", err)
}
defer jpgImgFile.Close()
var opt jpeg.Options
opt.Quality = 50
err = jpeg.Encode(jpgImgFile, newImg, nil)
if err != nil {
log.Fatalf("failed to encode: %+v", err)
}
log.Printf("converted PNG file to JPEG file")
}