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:

enter image description here

filigrane.png:

enter image description here

résultat:

enter image description here

32
répondu Nicolas Kaiser 2013-04-29 08:26:32