我正在尝试在二维码(图像)上叠加。问题是我的原始叠加图像是彩色的,但最终结果是黑白的。代码如下:
func (e Encoder) Encode(str string, logo image.Image, size int) (*bytes.Buffer, error) {
var buf bytes.Buffer
code, err := qr.New(str, e.QRLevel)
if err != nil {
return nil, err
}
img := code.Image(size)
e.overlayLogo(img, logo)
err = png.Encode(&buf, img)
if err != nil {
return nil, err
}
return &buf, nil
}
func (e Encoder) overlayLogo(dst, src image.Image) {
offset := dst.Bounds().Max.X/2 - src.Bounds().Max.X/2
yOffset := dst.Bounds().Max.Y/2 - src.Bounds().Max.Y/2
draw.Draw(dst.(draw.Image), dst.Bounds().Add(image.Pt(offset, yOffset)), src, image.Point{}, draw.Over)
}
有人可以在这里帮助我吗?这是我得到的最后一张图片
慕慕森
郎朗坤
相关分类