Skip to content

An application to convert files into images and back

License

Notifications You must be signed in to change notification settings

Jannis234/ImPack2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

174 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImPack2

An application to convert arbitrary files into images and back

About

ImPack2 allows you to store anything you want inside the RGB pixel data of an image, as long as the image is stored in a lossless format, like PNG for example.

Data can be encrypted and/or compressed before being stored inside the image. Additionally, ImPack2 includes the original filename for convenience and a CRC checksum to verify the data's integrity.

ImPack2 is a complete rewrite of my original ImPack code in C that adds new features and fixes design faults that the original program had. For backwards compatibility, it can extract old images created with the original ImPack.

Building

Compiling ImPack2 should be as simple as running make and sudo make install to install the result.

Check the files config_build.mak and config_system.mak for any customizable settings. The GUI will automatically be built if GTK is enabled in config_build.mak.

Dependencies

ImPack2 can make use of the following dependencies (can be toggled on or off in config_build.mak)

  • gtk3 - For the ImPack2 GUI
  • nettle - For encryption
  • argon2 - For password hashing during encryption
  • charls - To read/write JPEG-LS images
  • jxrlib - To read/write JPEG XR images
  • libavif - To read/write AVIF images
  • libflif - To read/write FLIF images
  • libheif - To read/write HEIF images
  • libjxl - To read/write JPEG-XL images
  • libnsbmp - To read BMP images
  • libpng - To read/write PNG images
  • libtiff - To read/write TIFF images
  • libwebp - To read/write WebP images
  • openjpeg2 - To read/write JPEG2000 images
  • brotli - For Brotli compression
  • libbzip2 - For Bzip2 compression
  • liblzma - For LZMA2 compression
  • zlib - For deflate compression
  • zstd - For Zstandard compression

If unsure, it is recommended to enable at least libpng to support a commonly used image format. For compression, at least zstd and liblzma are recommended as zstd is the default choice when enabling compression and LZMA2 is suggested by the GUI for maximum compression. For encryption, nettle is required and argon2 is highly recommended for higher security.

Usage examples

Store a file:

impack -e -i ./myfile -o ./myimage.png

Extract a file:

impack -d -i ./myimage.png

For all available options, see:

impack --help

About

An application to convert files into images and back

Resources

License

Stars

Watchers

Forks

Packages

No packages published