Объединение двух картин в Голанге
Я работал в течение последних 15 часов, пытаясь объединить значения, чтобы они могли иметь тот же аспект, что и у nametest
мои попытки В Голанге мне удалось объединить две картинки, создав большие картинки и вставив меньшие картинки рядом
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 ответ
Проще говоря, вам нужно нарисовать одно изображение, частично перекрывая другое, используя маску с градиентом прозрачности от полной прозрачности на краю верхнего изображения до полной непрозрачности на краю нижнего изображения.
Вам нужно будет использовать image/draw.DrawMask
чтобы сделать это, и вам, вероятно, нужно будет поэкспериментировать, чтобы получить правильное перекрытие.