亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查png圖像在戈朗中是否全部透明

檢查png圖像在戈朗中是否全部透明

Go
翻閱古今 2022-09-19 17:45:27
我有多個像這樣的網址,總是返回PNG圖像。https://hydro.nationalmap.gov/arcgis/rest/services/wbd/MapServer/export?bbox=-106.6462299999999885,25.83722399999999908,-93.50780600000010168,36.50038700000000347&size=640,519&bboxSR=4326&layers=show:4&f=image&transparent=true我想檢查從URL返回的圖像是否像上面的URL一樣都是空的(透明的),或者它里面有一些實際的圖像。我通過以下函數發出請求,并檢查HTTP狀態是否為200,返回的內容類型是否為圖像。我需要在此處添加功能以測試圖像是否為空。thumbnail := "https://hydro.nationalmap.gov/arcgis/rest/services/wbd/MapServer/export?bbox=-106.6462299999999885,25.83722399999999908,-93.50780600000010168,36.50038700000000347&size=640,519&bboxSR=4326&layers=show:4&f=image&transparent=true"resp, err := client.Get(thumbnail)if err != nil {    fmt.Println(err)} else if resp.StatusCode == 200 && strings.HasPrefix(resp.Header["Content-Type"][0], "image") {    return thumbnail} else {    fmt.Println(thumbnail, resp.StatusCode, resp.Header["Content-Type"][0])}
查看完整描述

1 回答

?
Smart貓小萌

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

}


查看完整回答
反對 回復 2022-09-19
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號