go 上传图片 添加水印 怎么铺满全屏
时间: 2023-02-08 15:24:18 浏览: 211
springboot实现上传图片添加水印
5星 · 资源好评率100%
在 Go 中,可以使用 image 包来处理图片,并使用 draw 包来在图片上添加水印。
首先,你需要载入图片并将其解码:
```
import (
"image"
"image/jpeg"
"os"
)
// 载入图片
file, err := os.Open("image.jpg")
if err != nil {
panic(err)
}
defer file.Close()
// 将图片解码为 image.Image 格式
img, err := jpeg.Decode(file)
if err != nil {
panic(err)
}
```
然后,你可以使用 draw.Draw 函数来在图片上添加水印:
```
import (
"image"
"image/color"
"image/draw"
"image/font"
"io/ioutil"
"log"
)
// 创建一个新图片,并将原图拷贝到新图上
bounds := img.Bounds()
newImg := image.NewRGBA(bounds)
draw.Draw(newImg, bounds, img, image.ZP, draw.Src)
// 读入字体文件
fontBytes, err := ioutil.ReadFile("font.ttf")
if err != nil {
log.Fatal(err)
}
// 解析字体
font, err := font.Parse(fontBytes)
if err != nil {
log.Fatal(err)
}
// 创建画布
drawer := &font.Drawer{
Dst: newImg,
Src: image.NewUniform(color.RGBA{R: 255, G: 255, B: 255, A: 255}),
Face: font,
Dot: fixed.Point26_6{X: 0 * 64, Y: 0 * 64},
}
// 在图片上写入文字
drawer.DrawString("Hello, World!")
```
最后,你可以使用 image.Encode 来编码并保存图片:
```
import (
"image/jpeg"
"os"
)
// 创建文件
file, err := os.Create("new_image.jpg")
if err != nil {
panic(err)
}
defer file.Close()
// 将图片编
阅读全文