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")
}
[Golang] "net/http: TLS handshake timeout" error (0) | 2022.07.01 |
---|---|
[Golang]UUID 만들기 (0) | 2022.06.24 |
[Golang]config 파일 관리는 viper 괜찮아요 (0) | 2022.06.16 |
[Golang]파일 타입 알고 싶을 때 DetectContentType (0) | 2022.06.09 |
[Golang]사용하고 있는 패키지들 언제 어떻게 업그레이드 하지? (0) | 2022.06.09 |