@go/vision

极致精简、工业级的高性能图像处理与全能媒体工具集。

🎯 设计哲学

go/vision 致力于消除 Go 语言在媒体处理领域的摩擦。通过纯 Go 的核心算法与标准化的外部工具编排,提供一套语义一致、零摩擦、高性能的 API 体系。

  • 零摩擦: 自动探测/引导环境准备(如 FFmpeg一键式识别与转换。
  • 工业级: 错误驱动架构No internal logging完备的单元测试覆盖。
  • 全能型: 涵盖静态图、动图、视频、扫码、色彩分析与几何变换。

🚀 核心能力

1. 基础绘图与画布 (Canvas)

  • 流式 API: 支持矩形、圆角、路径、点/线、阴影、暗角等绘制。
  • 现代文本: 内置 CompositeFace,完美支持多字体回退 (Fallback) 与中英文混排。

2. 图像处理与变换

  • 几何变换: 缩放 (Resize/Fit/Fill)、旋转、镜像、4 点透视变换 (WarpPerspective)
  • 高级滤镜: 模糊、锐化、灰度、亮度/对比度、怀旧 (Sepia)、像素化。
  • 色彩分析: 调色板提取 (ExtractPalette)、平均色计算。

3. 智能视觉 (Intelligence)

  • 码码识别: 集成 QR Code、条形码 (Code128, UPC/EAN) 的生成与自动解码识别。
  • 感知哈希 (PHash): 基于图像特征的指纹计算,用于海量图片相似度查重。
  • 验证码引擎: 高强度抗 OCR 图形验证码生成。

4. 动态媒体 (Animation & Video)

  • GIF 引擎: 高质量 GIF 序列生成,内置 Plan9 调色板与 Floyd-Steinberg 抖动。
  • 视频编排: 基于 FFmpeg 的视频帧提取与合成,支持多平台二进制自动引导。

📦 安装

go get apigo.cc/go/vision

💡 快速开始

扫码识别

c, _ := vision.Load("code.jpg")
content, err := c.DecodeAll() // 自动尝试 QR 和条码

视频帧处理

v, _ := vision.NewVideo()
frame, _ := v.ExtractFrame("video.mp4", 5.0)
frame.Grayscale()
vision.Save(frame, "snapshot.png")

提取主色调

palette := canvas.ExtractPalette(5)
for _, c := range palette {
    fmt.Println("发现主色:", c.Hex)
}

🛠 API 概览

模块 主要 API
Canvas New, Load, Save, Clear, Sub, Clone, Put
Draw Rect, RoundedRect, Circle, Line, Path, RandBG
Effect Resize, Rotate, Blur, Sharpen, AdjustBrightness, Grayscale
Recognition DecodeQRCode, DecodeBarcode, DecodeAll, PHash, Distance
Media NewAnimation, NewVideo, ConvertAll, Optimize

本项目由 AI 驱动开发与维护,遵循极致的代码质量与性能标准。

Description
No description provided
Readme MIT 90 KiB
Languages
Go 100%