png

package
v0.1.14 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2025 License: MIT Imports: 8 Imported by: 0

README

PNG Metadata

PNG 图片 iTXt 元数据读写,支持 UTF-8 和流式传输。

安装

go get github.com/rehtt/Kit/metadata/png

快速开始

文件操作
import "github.com/rehtt/Kit/metadata/png"

// 写入
metadata := []png.Metadata{
    {Keyword: "Author", Text: "张三"},
    {Keyword: "Title", Text: "测试图片"},
}
png.WriteMetadata("input.png", "output.png", metadata)

// 读取
data, _ := png.ReadMetadata("output.png")
for _, m := range data {
    fmt.Printf("%s: %s\n", m.Keyword, m.Text)
}
流式操作
// 从 Reader 读取
reader := bytes.NewReader(pngData)
metadata, _ := png.ReadMetadataFromReader(reader)

// 写入到 Writer
var output bytes.Buffer
png.WriteMetadataToWriter(reader, &output, metadata)
HTTP 场景
func handler(w http.ResponseWriter, r *http.Request) {
    file, _, _ := r.FormFile("image")
    defer file.Close()
    
    metadata := []png.Metadata{
        {Keyword: "UploadTime", Text: time.Now().String()},
    }
    
    png.WriteMetadataToWriter(file, w, metadata)
}

API

Metadata 结构
type Metadata struct {
    Keyword           string  // 关键字
    LanguageTag       string  // 语言标签 (如: zh-CN, en-US)
    TranslatedKeyword string  // 翻译关键字
    Text              string  // 文本内容
}
函数
// 文件操作
func ReadMetadata(filename string) ([]Metadata, error)
func WriteMetadata(inputFile, outputFile string, metadata []Metadata) error

// 流式操作
func ReadMetadataFromReader(r io.Reader) ([]Metadata, error)
func WriteMetadataToWriter(r io.Reader, w io.Writer, metadata []Metadata) error

测试

go test -v

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WriteMetadata

func WriteMetadata(inputFile, outputFile string, metadata []Metadata) error

func WriteMetadataImg

func WriteMetadataImg(img image.Image, w io.Writer, metadata []Metadata) error

func WriteMetadataToWriter

func WriteMetadataToWriter(r io.Reader, w io.Writer, metadata []Metadata) error

Types

type Metadata

type Metadata struct {
	Keyword           string
	LanguageTag       string
	TranslatedKeyword string
	Text              string
}

func ReadMetadata

func ReadMetadata(filename string) ([]Metadata, error)

func ReadMetadataFromReader

func ReadMetadataFromReader(r io.Reader) ([]Metadata, error)

Jump to

Keyboard shortcuts

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