栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Golang 通过Image包实现图片处理、二维码生成

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang 通过Image包实现图片处理、二维码生成

首先准备一个简单的图片 qrcode.png

了解下几个处理图片的方法
image.Decode() // 得到文件的图片对象
image.NewRGBA() // 创建一个真彩色的图像对象 *RGBA
func (p *RGBA) Bounds() Rectangle { return p.Rect } // 获取图片的尺寸
func (p *RGBA) Set(x, y int, c color.Color) {} // 以像素点为单位为图像上色
func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op) {} // 图片拼接
func Encode(w io.Writer, m image.Image) error {} // 输出图片文件

案例一、将上面的图片绘制在以黑色为底的图片上:
func TestImageSplice(t *testing.T) {
	// 创建一个以黑色为底的图片
	bgImg := image.NewRGBA(image.Rect(0, 0, 300, 300))
	for x := 0; x < bgImg.Bounds().Dx(); x++ {    // 将背景图涂黑
		for y := 0; y < bgImg.Bounds().Dy(); y++ {
			bgImg.Set(x, y, color.Black)
		}
	}
	// 拿到二维码图片对象
	f, err := os.Open("./qrcode.png")
	if err != nil {
		panic(err)
	}
	qrcodeImg, _, err := image.Decode(f)
	// 将二维码图片绘制到黑色的图片上
	draw.Draw(bgImg, bgImg.Bounds(), qrcodeImg, image.Pt(0, 0), draw.Over)
	fileOut, _ := os.Create("./image.png")
	png.Encode(fileOut, bgImg)
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号