marmal95 / BMP-Compressor

A school project BMP image compression application using LZ77 and Huffman algoritms.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This application uses SDL2 library, therefore to be able to compile it from source code you have to include this library properly into your project. On linux it is simple, just install libsdl2-dev using package manager. On windows (e.g. when using Visual Studio 2015 or QtCreator), you have to compile SDL2 library by yourself from source code to make it work.

SDL2: https://www.libsdl.org/download-2.0.php
Guide for VS 2015: http://headerphile.com/sdl2/sdl2-part-0-setting-up-visual-studio-for-sdl2/

  1. Usage:

    • [-input] <...files> -output <pattern> [options] creates encoded/decoded output from input files
      Remarks: String <pattern> is generated output file name (full path), which can contain these parameters:

      • %input.path% [unix] path of file (if not null, ends with '/')
      • %input.name% name of input file (without extension)
      • %input.ext% extension of input file (without dot)
      • %input.id% position in input files set (0...N-1)

      Remarks: '.rgb12' is automatically added to output file name, when <pattern> doesn't contain extension.

    • [-input] <...files> [(-s | --show)] Preview image files (.bmp | .rgb12)
      Remarks: Can drag and drop image files on application to execute this command.

    • (-a | --authors) Information about authors

    • (-v | --version) Application version

    • (-h | --help) This message

    • Options:

      • (-s | --show) show output file afterwards
      • (-gs | --grayscale) convert image to grayscale (even if it is already in grayscale!)
      • (--huffman | --lz77) use another compression algorithm (default = 12 bits per pixel)
  2. Project directory tree structure

    • /bin - all compiled executables
    • /cmake_modules - cmake to find SDL2 library
    • /include - c++ header files
    • /src - c++ source files
    • /test - main.cpp and other files used for tests
    • /doc - documentation (in polish)

About

A school project BMP image compression application using LZ77 and Huffman algoritms.


Languages

Language:C++ 91.3%Language:CMake 8.7%