This project has been archived. |
---|
Data as an image.
pip install datim
Alternatively, install datim[optional]
and get progress bar support.
datim has four commands:
datim
imdat
datimp
imdatp
datim
and imdat
check whether the compiled variant of datim is installed.
If unavailable, it will fallback to the pure Python variant of datim.
datimp
and imdatp
exclusively use the pure Python variant of the module.
$ datim
usage: datim [-h] [-o] [-np] [-nc] [-na] input output
(compiled) turns any file into an image
positional arguments:
input input file path
output output file path
optional arguments:
-h, --help show this help message and exit
-o, --overwrite overwrite without confirmation
-np, --no-progress do not use tqdm
-nc, --no-compress do not compress data
-na, --no-alpha do not use alpha channel
$ imdat
usage: imdat [-h] [-o] [-np] [-nc] [-na] input output
(compiled) turns previously converted images into the original file
positional arguments:
input input file path
output output file path
optional arguments:
-h, --help show this help message and exit
-o, --overwrite overwrite without confirmation
-np, --no-progress do not use tqdm
-nc, --no-compress do not compress data
-na, --no-alpha do not use alpha channel
An image created by datim is made up by the following:
[header][data][trailing 0s]
-
[header] -> "<length of [data] hex array encoded in base15 hex>F"
This is made up of a base15 hex array (0-E) denoting the length of the (compressed) data hex array. It is then suffixed with a hex
F
, acting as a delimiter betweeen the[header]
and[data]
section. This method of storing the data hex array was chosen as to not use the alpha layer, which would increase the resulting image file size. -
[data]
The (compressed) data is expressed naturally as its hexidecimal counterparts.
-
[trailing 0s]
After the
[data]
hex array are trailing0
s. Before 2.0.0, trailing data were randomly generated for cosmetic purposes, but was removed due for performance. The reason for the trailing data is due to all output images being squares which may fit data that has a length perfectly square root-able, which most data is not.
datim is unlicensed with The Unlicense.