Manipulation des images de filigrane avec Go
je veux trouver quelque chose au sujet de faire les exemples d'image de filigrane, écrits dans le langage Go!
j'ai besoin d'une image PNG pour le filigrane de l'image, qui peut être appliquée à d'autres formats PNG, GIF, JPEG, etc.,
j'espère que vous pouvez me donner quelques exemples pratiques.
15
demandé sur
peterSO
2013-04-19 12:02:09
1 réponses
comme déjà mentionné, vous pouvez filigraner les images avec le paquet image/draw.
voici un exemple pratique rapide, en ajoutant une image png transparente à une image jpeg et en sauvegardant comme jpeg:
package main
import (
"image"
"image/draw"
"image/jpeg"
"image/png"
"os"
)
func main() {
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()
}
image.jpg:
filigrane.png:
résultat:
32
répondu
Nicolas Kaiser
2013-04-29 08:26:32