Go語言圖片處理怎樣進(jìn)行格式轉(zhuǎn)換

小樊
81
2024-11-07 12:40:38
欄目: 編程語言

在Go語言中,可以使用第三方庫(kù)github.com/nfnt/resize進(jìn)行圖片處理,包括格式轉(zhuǎn)換。首先,需要安裝這個(gè)庫(kù):

go get github.com/nfnt/resize

接下來,可以使用以下代碼示例將圖片轉(zhuǎn)換為不同的格式:

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
	}

	// 調(diào)整圖片大小
	resizedImg := resize.Resize(100, 0, img, resize.Lanczos3)

	// 轉(zhuǎn)換圖片格式為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!")
}

在這個(gè)示例中,我們首先打開一個(gè)名為input.jpg的圖片文件,然后使用image.Decode函數(shù)解碼圖片。接下來,我們使用resize.Resize函數(shù)調(diào)整圖片大小。最后,我們將調(diào)整后的圖片轉(zhuǎn)換為PNG格式,并將結(jié)果保存到名為output.png的文件中。

注意:這個(gè)示例僅適用于JPEG和PNG格式的圖片。如果要處理其他格式,例如GIF,需要使用相應(yīng)的解碼和編碼庫(kù)。

0