我有以下代码。它将前景图像(logo.jpg)粘贴到背景图像(background.jpg)上 粘贴此前景图像时,我想要设置此前景图像的不透明度。我使用DrawMask(http://golang.org/doc/articles/image_draw.html),但似乎我在这里失去了一些东西。请参阅下面的代码。任何人有任何想法?在golang中设置图像的不透明度
package main
import (
"os"
"image/draw"
"image"
"image/jpeg"
)
func main() {
//Background image
fImg1, _ := os.Open("background.jpg")
defer fImg1.Close()
img1, _, _ := image.Decode(fImg1)
//Logo to stick over background image
fImg2, _ := os.Open("logo.jpg")
defer fImg2.Close()
img2, _, _ := image.Decode(fImg2)
//Mask image (that is just a solid light gray image of same size as logo)
fmask, _ := os.Open("mask.jpg")
defer fImg2.Close()
mask, _, _ := image.Decode(fmask)
//Create a new blank image m
m := image.NewRGBA(image.Rect(0, 0, 1920, 1280))
//Paste background image over m
draw.Draw(m, m.Bounds(), img1, image.Point{0,0}, draw.Src)
//Now paste logo image over m using a mask (ref. http://golang.org/doc/articles/image_draw.html)
//******Goal is to have opacity value 50 of logo image, when we paste it****
draw.DrawMask(m, m.Bounds(), img2, image.Point{-100,-100}, mask, image.Point{-100,-100}, draw.Src)
toimg, _ := os.Create("new.jpg")
defer toimg.Close()
jpeg.Encode(toimg, m, &jpeg.Options{jpeg.DefaultQuality})
}
上面的代码是由Sathish所在帮助(http://stackoverflow.com/questions/12430874/image-manipulation-in-golang)。谢谢Sathish。
真棒史蒂夫。它的工作:)非常感谢你。还有一个问题,如果你有时间,我张贴在http://stackoverflow.com/questions/12487561/golang-json-unmarshal-is-not-returning-data-correctly – JVK