Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

data2img

双向数据-图片转换工具,将任意二进制文件与 PNG 图片格式相互转换

目录

安装

从源码编译

确保您已经安装了 Rust 开发环境,然后执行以下命令:

# 克隆仓库
git clone https://github.com/gpchn/data2img.git
cd data2img

# 编译并安装到系统路径
cargo install --path .

直接下载二进制文件

可以从 Releases 页面下载预编译的二进制文件。

使用

编码数据为图片

将任意二进制文件编码为 PNG 图片:

# 基本用法
data2img encode -i input_file.txt -o output_image.png

# 指定图片尺寸和头部长度
data2img encode -i input_file.txt -o output_image.png -s 512 -H 8

# 选择图片模式(grayscale, rgb, rgba)
data2img encode -i input_file.txt -o output_image.png -m rgba

# 显示详细信息
data2img encode -i input_file.txt -o output_image.png -v

解码图片为数据

将编码的 PNG 图片解码回原始数据:

# 基本用法
data2img decode -i input_image.png -o output_file.txt

# 显示详细信息
data2img decode -i input_image.png -o output_file.txt -v

# 验证解码结果
data2img decode -i input_image.png -o output_file.txt --verify

分析数据文件

分析数据文件,计算最优编码参数:

# 基本用法
data2img analyze -i input_file.txt

# 显示详细信息
data2img analyze -i input_file.txt -v

特性

  • 双向转换:支持数据到图片和图片到数据的转换
  • 多种图片模式:支持 Grayscale、RGB、RGBA 三种图片模式
  • 自动检测:解码时自动识别图片模式
  • zstd 压缩:内置 zstd 压缩算法,减小数据体积
  • 自定义参数:可自定义图片尺寸和头部长度
  • 详细日志:支持详细的操作日志输出
  • 安全限制:防止过大的图片导致内存溢出

技术原理

  1. 数据编码过程

    • 读取输入文件并使用 zstd 进行压缩
    • 计算所需的图片尺寸和头部信息
    • 将数据转换为像素值
    • 添加头部信息和数据长度
    • 生成并保存 PNG 图片
  2. 数据解码过程

    • 读取 PNG 图片文件
    • 自动识别图片模式
    • 从像素值中提取数据
    • 验证数据完整性
    • 使用 zstd 解压数据
    • 保存解码后的数据到文件

维护者

贡献

欢迎提交 Issue 和 Pull Request!

请确保您的贡献符合以下准则:

  1. 遵循 Rust 的代码风格和最佳实践
  2. 添加适当的测试和文档
  3. 保持代码简洁和可读性

许可证

Apache License 2.0

该项目使用了 AI 辅助开发

About

将数据编码成图片,或将图片解码成数据

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages