Skip to content

AntynK/Pickart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pickart

Note

Цей документ має переклад українською.

Pickart - this is the file format used by the game called Colouring art for storing images.

Name 'Pickart' - comes from a combination of two words 'pickle' and 'art'.

About format

The root of the .pickart file is a Python dictionary serialised with pickle and compressed with gzip.

File structure (version 1.0.0):

{
    "info":{
        "size": (1, 1),
        "version": 1
    },
    "palette":[(red, green, blue, alpha), ...],
    "pixels": [
        [(colour_index, is_painted), ...]
    ]
}

"info" - stores image size and Pickart file version.

"palette" - stores colour palette. Every colour is a tuple of integers. Integer value is in range from 0 to 255 (including), alpha - optional.

"pixels" - stores a matrix which contains a tuple with colour_index(int) and flag painted(bool).

colour_index - colour index in palette if this pixel is transparent (alpha = 0), index becomes None.

painted - represents pixel state, if false it will appear as a shade of grey, otherwise like normal colour.

Package pickle has security issues. The game does not use standard pickle.load() instead it uses restricted loader which allows only basic types(int, str, list, dict, tuple, set). If it detects that the file contains external types (any object that is imported), it will throw the exception UnpicklingError with the message There is something strange in the file, do not trust it!.

Command line interface

This package allows converting .png files to .pickart and vice versa.

The command below shows all arguments:

Windows:

python -m pickart -h

For Linux and macOS

python3 -m pickart -h

Basic arguments

-i "path" - indicates the folder in which the files for conversion are located (by default, 'input'). The folder must exist.

-o "path" - indicates the folder in which converted files will be stored (by default, 'output'). May not exist.

-m "mode" - indicates conversion mode:

  • to_pickart - .png files to .pickart files.
  • to_png - .pickart files to .png files.

Tests

All tests are written using the unittest module. To run use the command:

Windows:

python -m unittest discover

For Linux and macOS

python3 -m unittest discover

About

This is helper package for game called 'Colouring art'

Topics

Resources

License

Stars

Watchers

Forks

Languages