watermark

package module
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2024 License: MIT Imports: 11 Imported by: 3

README

watermark Go codecov license PkgGoDev

watermark 提供了简单的图片水印处理功能。支持处理 GIF、PNG 和 JPEG,水印也只支持这些类型的文件。

对于 GIF 水印,若被渲染图片为非 GIF 图片,则只取水印的第一帧作为水印内容; 若被渲染图片也是 GIF,则会将被渲染图片的第一帧与水印的第一帧合并, 水印的第二帧与被渲染图片的第二帧合并,依次类推。水印帧数不够的,则循环使用, 直到被渲染图片的帧数用完。

w, err := watermark.New("./path/to/watermark/file", 2, watermark.Center)
if err != nil{
    panic(err)
}

err = w.MarkFile("./path/to/file")

安装

go get github.com/issue9/watermark

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

Documentation

Overview

Package watermark 提供一个简单的水印功能

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrUnsupportedWatermarkType 不支持的水印类型
	ErrUnsupportedWatermarkType = errors.New("不支持的水印类型")

	// ErrWatermarkTooLarge 当水印位置距离右下角的范围小于水印图片时,返回错误。
	ErrWatermarkTooLarge = errors.New("水印太大")
)

Functions

func IsAllowExt

func IsAllowExt(ext string) bool

IsAllowExt 该扩展名的图片是否允许使用水印

ext 必须带上 . 符号

Types

type Pos

type Pos int

Pos 表示水印的位置

const (
	TopLeft Pos = iota
	TopRight
	BottomLeft
	BottomRight
	Center
)

水印的位置

type Watermark

type Watermark struct {
	// contains filtered or unexported fields
}

Watermark 用于给图片添加水印功能

目前支持 gif、jpeg 和 png 三种图片格式。 若是 gif 图片,则只取图片的第一帧;png 支持透明背景。

func New

func New(r io.Reader, ext string, padding int, pos Pos) (w *Watermark, err error)

New 声明 Watermark 对象

r 为水印图片内容; ext 为水印图片的扩展名,会根据扩展名判断图片类型; padding 为水印在目标图像上的留白大小; pos 图片位置;

func NewFromFS added in v1.2.2

func NewFromFS(fsys fs.FS, path string, padding int, pos Pos) (*Watermark, error)

NewFromFS 从文件系统初始化 Watermark 对象

func NewFromFile added in v1.2.2

func NewFromFile(path string, padding int, pos Pos) (*Watermark, error)

NewFromFile 从文件声明一个 Watermark 对象

path 为水印文件的路径; padding 为水印在目标图像上的留白大小; pos 水印的位置。

func (*Watermark) Mark

func (w *Watermark) Mark(src io.ReadWriteSeeker, ext string) (err error)

Mark 将水印写入 src 中,由 ext 确定当前图片的类型。

func (*Watermark) MarkFile

func (w *Watermark) MarkFile(path string) error

MarkFile 给指定的文件打上水印

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL