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