在Go語言中,可以使用第三方庫github.com/nfnt/resize
進行圖片處理,包括格式轉換。首先,需要安裝這個庫:
go get github.com/nfnt/resize
接下來,可以使用以下代碼示例將圖片轉換為不同的格式:
package main
import (
"fmt"
"image/jpeg"
"image/png"
"os"
"github.com/nfnt/resize"
)
func main() {
// 打開圖片文件
file, err := os.Open("input.jpg")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
// 解碼圖片
img, _, err := image.Decode(file)
if err != nil {
fmt.Println("Error decoding image:", err)
return
}
// 調整圖片大小
resizedImg := resize.Resize(100, 0, img, resize.Lanczos3)
// 轉換圖片格式為PNG
pngFile, err := os.Create("output.png")
if err != nil {
fmt.Println("Error creating PNG file:", err)
return
}
defer pngFile.Close()
err = png.Encode(pngFile, resizedImg)
if err != nil {
fmt.Println("Error encoding PNG image:", err)
return
}
fmt.Println("Image converted to PNG successfully!")
}
在這個示例中,我們首先打開一個名為input.jpg
的圖片文件,然后使用image.Decode
函數解碼圖片。接下來,我們使用resize.Resize
函數調整圖片大小。最后,我們將調整后的圖片轉換為PNG格式,并將結果保存到名為output.png
的文件中。
注意:這個示例僅適用于JPEG和PNG格式的圖片。如果要處理其他格式,例如GIF,需要使用相應的解碼和編碼庫。