在Golang中合并两张图片

时间:2017-07-23 14:19:17

标签: image go glide-golang

过去15个小时我一直在努力尝试将pitures结合起来,以便它可以像nametest一样具有相同的方面

我的尝试 在golang中,我成功地通过创建更大的图片并将小图片粘贴到

来组合两张图片
src1, err := imaging.Open("public/images/g8.jpg")
if err != nil {
    log.Fatalf("Open failed: %v", err)
}else{


}
src2, err := imaging.Open("public/images/f2.jpg")
if err != nil {
    log.Fatalf("Open failed: %v", err)
}else{
dstImage1 := imaging.Resize(src1, 256, 256, imaging.Lanczos)
dstImage2 := imaging.Resize(src2, 256, 256, imaging.Lanczos)


    dst := imaging.New(512, 256, color.NRGBA{0, 0, 0, 0})
    dst = imaging.Paste(dst, dstImage1, image.Pt(0, 0))


    dst = imaging.Paste(dst, dstImage2, image.Pt(256, 0)

err = imaging.Save(dst, "public/images/g8.jpg")
if err != nil {
    log.Fatalf("Save failed: %v", err)
}
}

通过这段代码,我能够实现这样的事情  http://scholar.myquotes.site/vaumi1.jpg(对不起,我还不允许发布图片) 但很明显,它们是两个完全不同的图片,我希望能够以这样的方式刷新图像的会合点,使得没有明确的会议部分 。总之,我想要一个像这样的结果 http://scholar.myquotes.site/vaumi.jpg 感谢

1 个答案:

答案 0 :(得分:0)

简单来说,您需要使用一个遮罩,其中一个遮罩的透明度渐变从顶部图像边缘的完全透明度到底部图像边缘的完全不透明,因此需要绘制一个部分重叠另一个的图像。

您需要使用image/draw.DrawMask来执行此操作,并且您可能需要进行一些实验以获得正确的重叠量。