2013-04-19 17 views
13

Voglio trovare qualcosa su come rendere gli esempi di immagini filigrana, scritte nella lingua Go!Manipolazione delle immagini di filigrana con Go

ho bisogno di un'immagine PNG per l'immagine della filigrana, che può essere applicato in altri formati PNG, GIF, JPEG, ecc,

Spero che possiate darmi alcuni esempi pratici.

+0

veda questo articolo per la manipolazione delle immagini: http://golang.org/doc/articles/image_draw.html. Alcuni degli esempi sembrano coprire i tuoi bisogni, essenzialmente fondendo alcune immagini in un'altra con trasparenza alfa. – Mikke

risposta

27

Come già accennato, è possibile filigranare le immagini con il pacchetto immagine/disegno.

Ecco un esempio pratico breve, l'aggiunta di un'immagine png trasparente ad un'immagine del JPEG e salvare come 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

watermark.png:

enter image description here

risultato:

enter image description here

+0

Ottima risposta, con codice e immagini! –

+0

okay ci proverò! –

+1

Esempio delizioso, grazie mille! – markdsievers

Problemi correlati