双向数据-图片转换工具,将任意二进制文件与 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 压缩算法,减小数据体积
- 自定义参数:可自定义图片尺寸和头部长度
- 详细日志:支持详细的操作日志输出
- 安全限制:防止过大的图片导致内存溢出
-
数据编码过程:
- 读取输入文件并使用 zstd 进行压缩
- 计算所需的图片尺寸和头部信息
- 将数据转换为像素值
- 添加头部信息和数据长度
- 生成并保存 PNG 图片
-
数据解码过程:
- 读取 PNG 图片文件
- 自动识别图片模式
- 从像素值中提取数据
- 验证数据完整性
- 使用 zstd 解压数据
- 保存解码后的数据到文件
欢迎提交 Issue 和 Pull Request!
请确保您的贡献符合以下准则:
- 遵循 Rust 的代码风格和最佳实践
- 添加适当的测试和文档
- 保持代码简洁和可读性
该项目使用了 AI 辅助开发