2013-04-19 14 views
13

Go言語で書かれた透かし画像の例を作成したいと思っています!Goで透かし画像を操作する

私はあなたが私にいくつかの実用的な例を与えることができることを望む

、他のフォーマットPNG、GIF、JPEGなどに適用することができ透かし画像用のPNG画像を必要としています。

+0

がイメージ操作のためのこの記事を参照してください。いくつかの例は、あなたのニーズをカバーしているように見えます。 – Mikke

答えて

27

既に述べたように、画像/描画パッケージで画像に透かしを入れることができます。

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:

ここ

は、JPEG画像に透過PNG画像を追加し、JPEGとして保存し、迅速な実用的な例です

enter image description here

結果:http://golang.org/doc/articles/image_draw.html:

enter image description here

+0

偉大な答えは、コードと写真で! –

+0

大丈夫です!それを試してみましょう!thk u! –

+1

おいしい例、ありがとう! – markdsievers