用Go操纵水印图像

Gop*_*lex 15 watermark image image-processing go

我想找一些关于制作水印图像的例子,用Go语言编写!

我需要一个水印图像的PNG图像,可以应用于其他格式PNG,GIF,JPEG等,

我希望你能给我一些实际的例子.

Nic*_*ser 33

如前所述,您可以使用图像/绘图包为水印图像添​​加水印.

这是一个快速的实际示例,将一个透明的png图像添加到jpeg图像并保存为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()
}
Run Code Online (Sandbox Code Playgroud)

image.jpg的:

在此输入图像描述

watermark.png:

在此输入图像描述

结果:

在此输入图像描述