J2KGo v1.0.0发布:高性能、零依赖、纯Go语言JPEG2000图像编解码库

@Ta 10-12 14:33 1093点击
J2KGo v1.0.0发布:高性能、零依赖、纯Go语言JPEG2000图像编解码库

开发OFDGo、PDFGo时,需要处理文档中嵌入的JPEG2000图像。随着接触的文件越来越多,大图解码、内存占用和跨平台部署成了需要持续解决的问题,J2KGo也是从这些实际需求中做起来的。

J2KGo现已发布v1.0.0,并已应用于OFDGo和PDFGo。

原生实现,简化部署

J2KGo的编解码由Go原生实现,仅使用标准库,不依赖CGO、动态库或外部程序,也不是对C/C++库的封装。

对于Go项目,可以沿用现有工具链构建和交叉编译,无需额外准备原生库及其运行环境。也支持编译为WebAssembly,在浏览器中处理图像。

编码解码,灵活调用

支持J2K裸码流和JP2格式,提供无损、有损编码,以及质量分层、码率控制和感兴趣区域编码能力。

接口尽量贴近Go标准库的使用习惯。导入包后,可以通过image.Decode读取图像,也可以直接调用编解码接口。对于需要保留原始图像数据的场景,还提供分量访问接口,保留样本精度、符号和采样信息,不强制转换为常规显示图像。

大图处理,按需读取

支持区域解码、分块读取和降低分辨率解码。生成预览、读取局部或分块处理时,不必每次都将整张图像完整展开。

同时提供库内资源限制、解码并发控制和取消机制,让调用方能根据运行环境和业务需求控制处理过程。

J2KGo虽然起步于OFD、PDF中的图像处理需求,但本身是独立的编解码库,不依赖这两个项目。希望它能为需要处理JPEG2000的Go开发者,提供一个原生实现、依赖简单、方便集成的选择。

项目采用Apache-2.0协议开源,仓库中提供了使用示例。欢迎使用,也欢迎反馈实际文件中遇到的问题。

J2KGo:https://github.com/xiaoqidun/j2kgo
OFDGo:https://github.com/xiaoqidun/ofdgo
PDFGo:https://github.com/xiaoqidun/pdfgo
回复列表(5|隐藏机器人聊天)
  • @Ta / 10-14 13:59 / 样 / 源

    其实我一直很好奇,go项目都是所有go文件在一个目录吗?很少看到go项目会划分很多mod

  • @Ta / 10-14 14:52 / 样 / 源
    有点重复造轮子了
  • @Ta / 10-14 15:28 / 样 / 源

    @张小强,是不是改成 go 实现,能轻而易举部署到任意平台了

    不知道对比原版,性能损失多少,但好在这种图片也不多见

  • @Ta / 10-14 16:58 / 样 / 源
    @无名啊,是的,使用标准库的GO项目编译二进制后,单文件随意分发部署,目标机器不用额外配置环境,性能应该是加强
  • @Ta / 10-16 16:40 / 样 / 源
    @张小强,不符合要求,实现不了需要的功能。
添加新回复
回复需要登录。