代码拉取完成,页面将自动刷新
package poster
import (
"bytes"
"crypto/tls"
"errors"
"image"
"io/ioutil"
"net/http"
)
// GetImage 从源读取图片,支持网络和本地
func GetImage(src string) (m image.Image, err error) {
var r *bytes.Reader
r, err = getResourceReader(src)
if err != nil {
return nil, err
}
m, _, err = image.Decode(r)
return
}
// getResourceReader 读取图片 支持本地和网络图片
func getResourceReader(src string) (r *bytes.Reader, err error) {
if len(src) < 5 {
return nil, errors.New("图片源错误")
}
//跳过证书验证
c := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
},
}
if src[0:4] == "http" {
resp, err := c.Get(src)
if err != nil {
return r, err
}
defer resp.Body.Close()
fileBytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
return r, err
}
r = bytes.NewReader(fileBytes)
} else {
fileBytes, err := ioutil.ReadFile(src)
if err != nil {
return nil, err
}
r = bytes.NewReader(fileBytes)
}
return r, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。