一个高性能、零依赖的纯 Go 语言 JBIG2 解码器

@Ta 01-04 17:40 372点击
开源地址:https://github.com/xiaoqidun/jbig2
写OFD渲染库时弄的,OFD很多发票图片就是JBIG2编码的,迫于Go生态无纯Go JBIG2解码器,兼容了png、jpg这种标准库用法,如果你的程序用的是标准库那套方式,你只需要这样_ "github.com/xiaoqidun/jbig2"导包,不做任何代码调整,你的程序就支持了JBIG2图像解码。
package main

import (
	"image"
	"image/png"
	"log"
	"os"

	_ "github.com/xiaoqidun/jbig2"
)

func main() {
	// 1. 打开JB2文件
	file, err := os.Open("test.jb2")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()
	// 2. 标准方式解码
	img, format, err := image.Decode(file)
	if err != nil {
		log.Fatal(err)
	}
	// 3. 输出PNG文件
	outFile, err := os.Create("test.png")
	if err != nil {
		log.Fatal(err)
	}
	defer outFile.Close()
	if err := png.Encode(outFile, img); err != nil {
		log.Fatal(err)
	}
	log.Printf("格式: %s, 宽度: %d, 高度: %d, 已输出到 test.png\n", format, img.Bounds().Dx(), img.Bounds().Dy())
}
回复列表(1|隐藏机器人聊天)
添加新回复
回复需要登录