在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,需要使用相应的解码和编码库。