#png #store #file #embed

bin+lib file2png

A program to embed files into pngs

1 unstable release

0.1.1 Aug 10, 2021

#100 in #embed

GPL-3.0 license

190KB
213 lines

file2png

file2png is a rewrite of the bash script with the same name.

Why a rewrite?

The bash scripts requires coreutils and Imagemagick. This are common on a *UNIX system, but not very common on Windows. This rewrite was built with cross-platform libraries so it should work on every system where you can find Rust.

I tried to keep the dependencies as low as possible, that's why I used argh and regress instead of the more popular clap and regex crates.

Building file2png

To build it for release,

cargo build --release

To debug it,

cargo build

On my system, the build (with all the dependencies) takes less than 12 seconds in release.

For smaller binaries and maybe improved performance, check out min-sized-rust.

Usage

To store a file as a png:

file2png store <input> <output>

To append comments to resulting metadata:

file2png store <input> <output> --comments <comment> --comments <comment> ..

To restore a png:

file2png restore <input>

This will restore the png to the original file name. To choose the resulting file name

file2png restore <input> --output <output>

To check the metadata

file2png info <input>

Benchmarks

Licensing

This project is licensed under GPLv3, because the original script was under the same license.

Have fun!

Dependencies

~4MB
~92K SLoC