Go | 影像套件的函式與介紹
💬 簡介
Go 語言的 image
套件提供了圖像處理的基礎建構功能,讓我們可以建立、操作、儲存各種圖像格式,並進一步與 image/png
、image/jpeg
等套件搭配使用。
本篇將帶你認識如何用 Go 建立一張圖片、操作像素、儲存為檔案,打開影像處理的基礎應用之門。
圖片來源:Gophers
💡 套件簡介與匯入
1 | import ( |
套件 | 功能說明 |
---|---|
image |
定義圖像介面與格式 |
image/color |
定義顏色(RGB、灰階等) |
image/png |
提供 PNG 圖檔編碼功能 |
image/jpeg |
提供 JPEG 圖檔編碼功能 |
🖼️ 建立新圖像
建立一張空白的 100x100 畫布:
1 | rect := image.Rect(0, 0, 100, 100) |
image.Rect(x0, y0, x1, y1)
:定義一個從(x0, y0)
到(x1, y1)
的矩形區域。image.NewRGBA()
:建立一個支援 RGB + Alpha 的彩色圖像。
🎨 設定像素顏色
透過 Set(x, y, color)
方法設定指定座標的顏色:
1 | red := color.RGBA{255, 0, 0, 255} |
color.RGBA{R, G, B, A}
:RGBA 顏色物件,A 代表透明度(255 為不透明)
💾 儲存為 PNG 檔
1 | file, err := os.Create("red.png") |
使用
image/png.Encode()
將圖像資料輸出成 PNG 圖檔。
🎯 圖像操作範例:繪製漸層方塊
1 | package main |
📥 讀取圖像檔
1 | file, err := os.Open("sample.png") |
image.Decode()
可自動判斷格式,需同時匯入對應格式的套件如image/png
、image/jpeg
等。
🔍 常見結構與型別說明
型別 | 功能簡述 |
---|---|
image.Image |
圖像介面 |
image.RGBA |
彩色圖像(Red Green Blue) |
image.Gray |
灰階圖像 |
color.Color |
顏色介面 |
image.Rectangle |
定義圖像尺寸範圍 |
🧰 搭配第三方工具提升功能
工具/套件 | 功能 |
---|---|
golang.org/x/image/draw |
圖像縮放、平移與複製操作 |
github.com/fogleman/gg |
2D 圖形與繪圖函式包 |
github.com/disintegration/imaging |
高階圖像處理(模糊、旋轉、調整) |
⚠️ 注意事項
- 圖像處理屬於記憶體密集操作,處理大量圖像時請注意資源釋放。
- 輸出為 JPEG 時可使用
jpeg.Encode(file, img, &jpeg.Options{Quality: 80})
指定品質。 Set()
不會觸發立即顯示,僅改變記憶體中圖像內容,需手動輸出或顯示。
🎯 總結
Go 的 image
套件提供:
- ✅ 建立、編輯與輸出圖像的基本能力
- ✅ 結合
image/color
可自定義色彩組合 - ✅ 搭配其他標準函式庫完成圖檔輸出與格式解析
- ✅ 適合基本圖像處理與影像生成的場景應用
雖然功能不如大型圖形處理框架強大,但簡單、直觀且跨平台的特性,仍使它在程式化圖像處理中扮演關鍵角色!
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go