1、生成一张全黑色的二维码图片:qr2.png
content := "https://test.com/chengle/html/fabrication/qrcode.html?id="+id
qrCode, _ := qr.Encode(content, qr.H, qr.Auto)
//qrCode, _ := qr.Encode("https://test.com/html/app/ios/ewm.html?type=5", qr.H, qr.Auto)
qrCode, _ = barcode.Scale(qrCode, 420, 420)
file, _ := os.Create("qr2.png")
defer file.Close()
png.Encode(file, qrCode)
defer imgb.Close()
3、生成一个带水印的logo
AddTextToImage()
4、把加了文字水印的logo:out.jpg 加在二维码上面
defer wmb.Close()
5、把水印写到右下角,并向0坐标各偏移10个像素
offset := image.Pt((img.Bounds().Dx()-watermark.Bounds().Dx())/2, (img.Bounds().Dy()-watermark.Bounds().Dy())/2)draw.Draw(m, watermark.Bounds().Add(offset), watermark, image.ZP, draw.Over)
6、生成新图片new.jpg,并设置图片质量..
imgw, _ := os.Create("new.jpg")defer imgw.Close()
//添加文本到图片
func AddTextToImage(){
// 输入文件
//var src os.File
//打开logo原图
src, err := os.Open("type.jpg")
if err != nil {
log.Fatalln("err1:",err)
}
defer src.Close()
//生成带水印的图片:out.jpg
dst, err := os.OpenFile("out.jpg", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
if err != nil {
log.Fatalln("err2:",err)
}
defer dst.Close()
//在图片上添加文字,字体文件自行下载,并放在对应的工作目录
signWriter := NewSigner("wryh.ttf")
src2, err := os.Open("type.jpg")
if err != nil {
log.Fatalln("err1:",err)
}
defer src2.Close()
fmt.Println(src)
watermark1, _ := jpeg.Decode(src2)
signWriter.SetStartPoint(0, 0)
signWriter.SetFontSize(13)
signWriter.SetSignPoint(watermark1.Bounds().Dx(), watermark1.Bounds().Dy())
err = signWriter.Sign(src, dst, “Test_A”, 2)
if err != nil {
log.Fatalln("err3:",err)
}
}