在golang中合成图片,一般使用image包及draw.Draw即可,images包的具体方法和用法:https://studygolang.com/pkgdoc
代码中图片缩放的包:github.com/nfnt/resize
/**
从url中获取图片资源
*/
func readImgData(url string) image.Image {
resp, err := http.Get(url)
if err != nil {
logs.Info("图片获取失败", err)
return nil
}
defer resp.Body.Close()
img,_,err := image.Decode(resp.Body)
if err != nil {
logs.Info("图片decode失败", err)
return nil
}
return img
}
// 计算图片缩放后的尺寸
func calculateRatioFit(srcWidth, srcHeight int, defaultWidth, defaultHeight float64) (int, int) {
ratio := math.Min(defaultWidth/float64(srcWidth), defaultHeight/float64(srcHeight))
return int(math.Ceil(float64(srcWidth) * ratio)), int(math.Ceil(float64(srcHeight) * ratio))
}
/**
3图合1,创建图片
*/
func CreatePicture(img1Url, img2Url, img3Url string) (map[string]int