使用Golang的image庫,可以進行圖像的讀取、操作和保存等操作。下面是一個簡單的示例:
package main
import (
"fmt"
"image"
"image/jpeg"
"os"
)
func main() {
// 打開圖像文件
file, err := os.Open("input.jpg")
if err != nil {
fmt.Println("無法打開圖像文件:", err)
return
}
defer file.Close()
// 解碼圖像文件
img, _, err := image.Decode(file)
if err != nil {
fmt.Println("無法解碼圖像文件:", err)
return
}
// 獲取圖像的寬度和高度
bounds := img.Bounds()
width := bounds.Max.X
height := bounds.Max.Y
fmt.Printf("圖像尺寸: %dx%d\n", width, height)
// 遍歷圖像的每個像素
for y := 0; y < height; y++ {
for x := 0; x < width; x++ {
// 獲取像素的顏色
pixel := img.At(x, y)
r, g, b, _ := pixel.RGBA()
// 輸出像素的顏色信息
fmt.Printf("像素位置(%d,%d)的顏色: R:%d G:%d B:%d\n", x, y, r, g, b)
}
}
// 保存圖像文件
outputFile, err := os.Create("output.jpg")
if err != nil {
fmt.Println("無法創建輸出文件:", err)
return
}
defer outputFile.Close()
// 將圖像編碼為JPEG格式并保存到文件中
err = jpeg.Encode(outputFile, img, nil)
if err != nil {
fmt.Println("無法保存圖像文件:", err)
return
}
fmt.Println("圖像保存成功!")
}
在上述示例中,我們首先打開圖像文件,在解碼圖像文件后,獲取圖像的寬度和高度,并遍歷圖像的每個像素獲取其顏色信息。最后,將圖像保存為JPEG格式的文件。
注意:在運行該示例之前,需要將input.jpg
替換為你自己的圖像文件路徑。