1 回答

TA貢獻1911條經驗 獲得超7個贊
標準庫提供了功能強大的軟件包和解碼器,使我們能夠非常輕松地做到這一點。imageimage/png
我們知道透明度意味著 alpha=0,我們需要做的就是迭代圖像的像素。
package main
import (
"image/png"
"io"
"log"
"net/http"
)
func main() {
transparentResp, _ := http.Get("https://upload.wikimedia.org/wikipedia/commons/3/3d/1_120_transparent.png")
defer transparentResp.Body.Close()
notTransparentResp, _ := http.Get("https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Pitch.png/640px-Pitch.png")
defer notTransparentResp.Body.Close()
println(isFullyTransparentPng(transparentResp.Body))
println(isFullyTransparentPng(notTransparentResp.Body))
}
func isFullyTransparentPng(reader io.Reader) bool {
img, _ := png.Decode(reader)
for x := img.Bounds().Min.X; x < img.Bounds().Dx(); x++ {
for y := img.Bounds().Min.Y; y < img.Bounds().Dy(); y++ {
_, _, _, alpha := img.At(x, y).RGBA()
if alpha != 0 {
return false
}
}
}
return true
}
- 1 回答
- 0 關注
- 122 瀏覽
添加回答
舉報