I want to watermark "the video streaming over http" which is written in GO language by using blackjack library. And for this, I found a code watermarking with png. But I could not manage to transform the variables jpeg <-> byte[].
Here is the code part which gets the frame from cam and writes to "JpegImage" variable.
var jpegImage []byte
frame, err := cam.ReadFrame()
if len(frame) != 0 {
mutex.Lock()
jpegImage = frame
mutex.Unlock()
}
else if err != nil {
panic(err.Error())
}
And here is the watermarking code with "image.jpg" variable.
imgb, _ := os.Open("image.jpg")
img, _ := jpeg.Decode(imgb)
defer imgb.Close()
wmb, _ := os.Open("watermark.png")
watermark, _ := png.Decode(wmb)
defer wmb.Close()
offset := image.Pt(200, 200)
b := img.Bounds()
m := image.NewRGBA(b)
draw.Draw(m, b, img, image.ZP, draw.Src)
draw.Draw(m, watermark.Bounds().Add(offset), watermark, image.ZP, draw.Over)
imgw, _ := os.Create("watermarked.jpg")
jpeg.Encode(imgw, m, &jpeg.Options{jpeg.DefaultQuality})
defer imgw.Close()
In the end, I need to combine this two code parts. After getting the frame from cam; firstly transform it to jpg, secondly watermark with png, thirdly transform it to []byte and lastly assign it to "JpegImage" variable.
I hope you can help me please.