使用
"github.com/disintegration/imaging"
"github.com/fogleman/gg"包
func drawBackground(path string) {
// 加载图片
// img, err := gg.LoadPNG("map.png")
img, err := gg.LoadPNG("aifile/maps/" + path)
if err != nil {
panic(err)
}
// 获取图片尺寸
size := img.Bounds().Size()
width := size.X
height := size.Y
// 以加载图片的宽高作为新图片的大小
dc := gg.NewContext(width, height)
// 画图
dc.DrawImage(img, 0, 0)
//获取的坐标
//点的颜色设置
dc.SetRGB(0, 1, 0)
//点的坐标x,y,半径
dc.DrawPoint(20, 20, 8)
// dc.Stroke() dc.Fill() 必须有一个绘制呈现
dc.Fill()
err = dc.SavePNG("aifile/maps/1K.png")
// 保存新图片,一般quality设置为75即可,最高可设置为100,值越高,质量越好,但是占空间大
// err = dc.SaveJPG("aifile/maps/1K1"+ks+".jpg", 1)
if err != nil {
panic(err)
}
//开始压缩图片
src, err := imaging.Open("aifile/maps/1K" + ks + ".png")
if err != nil {
panic(err)
} else {
src = imaging.Resize(src, 1250, 0, imaging.Lanczos)
smallimgPath := "aifile/maps/1Kaaa" + ks + ".png"
imaging.Save(src, smallimgPath)
}
}
}