前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go给图片添加水印

go给图片添加水印

作者头像
公众号-利志分享
发布2022-04-25 08:32:02
9190
发布2022-04-25 08:32:02
举报
文章被收录于专栏:利志分享

package main import ( "fmt" "image" "image/draw" "image/jpeg" "image/png" "os" ) func main() { //打开原始图片a.jpg imgB, _ := os.Open("a.jpg") //获取jpeg图片io对象 img, _ := jpeg.Decode(imgB) //io文件在结束时候关闭 defer imgB.Close() //打开水印图片 wmb, _ := os.Open("watermark.png") watermark, _ := png.Decode(wmb) defer wmb.Close() //把水印写到右下角,并向0坐标各偏移10个像素 //Bounds().Dx()表示获取图片的宽度 //Bounds().Dy()表示获取图片的高度 offset := image.Pt(img.Bounds().Dx()-watermark.Bounds().Dx()-10, img.Bounds().Dy()-watermark.Bounds().Dy()-10) //获取图片的边界 b := img.Bounds() //画一张新图 m := image.NewNRGBA(b) //Over说明(在mask上的src)覆盖在dst上 //src作用在mask上 draw.Draw(m, b, img, image.ZP, draw.Src) draw.Draw(m, watermark.Bounds().Add(offset), watermark, image.ZP, draw.Over) //生成新图片new.jpg,并设置图片质量.. imgw, _ := os.Create("new.jpg") //jpeg.Options{100}设置图片质量 jpeg.Encode(imgw, m, &jpeg.Options{100}) defer imgw.Close() fmt.Println("水印添加结束,请查看new.jpg图片...") }

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 利志分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档