README - farbfeld - suckless image format with conversion tools
 (HTM) git clone git://git.suckless.org/farbfeld
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       README (2973B)
       ---
            1 
            2                  ███ ███ ██  ██  ███ ███ █   ██
            3                  █   █ █ █ █ █ █ █   █   █   █ █
            4                  ██  ███ ██  ███ ██  ██  █   █ █
            5                  █   █ █ █ █ █ █ █   █   █   █ █
            6                  █   █ █ █ █ ██  █   ███ ███ ██
            7 
            8 
            9 WHAT IS FARBFELD?
           10         Farbfeld is a lossless image-format designed to be
           11         parsed and piped easily. It is probably the simplest
           12         image-format you can find (see FORMAT).
           13         It does not have integrated compression, but allows
           14         compression algorithms to work with it easily by adding
           15         little entropy to the image data itself. This beats PNG
           16         in many cases.
           17         Given the free choice of compression algorithms, it
           18         is trivial to switch to better and faster ones as they
           19         show up in the future.
           20 
           21 HOW DO I USE THE TOOLS?
           22         encoding:
           23         png2ff < example.png > example.ff
           24         png2ff < example.png | bzip2 > example.ff.bz2
           25 
           26         decoding:
           27         ff2png < example.ff > example.png
           28         bzcat example.ff.bz2 | ff2png > example.png
           29 
           30         bzip2 is used in this example and a recommended
           31         compression algorithm. Of course you are free
           32         to use something else.
           33 
           34 WHY FARBFELD?
           35         Current image-formats have integrated compression,
           36         making it complicated to read the image data.
           37         One is forced to use complex libraries like libpng,
           38         libjpeg, libjpeg-turbo, giflib and others, read the
           39         documentation and write a lot of boilerplate in order
           40         to get started.
           41         Farbfeld leaves this behind and is designed to be as
           42         simple as possible, leaving the task of compression
           43         to outside tools.
           44         The simple design, which was the primary objective,
           45         implicitly lead to the very good compression
           46         characteristics, as it often happens when you go with
           47         the UNIX philosophy.
           48         Reading farbfeld images doesn't require any special
           49         libraries. The tools in this folder are just a toolbox
           50         to make it easy to convert between common image formats
           51         and farbfeld.
           52 
           53 HOW DOES IT WORK?
           54         In farbfeld, pattern resolution is not done while
           55         converting, but while compressing the image.
           56         For example, farbfeld always stores the alpha-channel,
           57         even if the image doesn't have alpha-variation.
           58         This may sound like a big waste at first, but as
           59         soon as you compress an image of this kind, the
           60         compression-algorithm (e.g. bzip2) recognizes the
           61         pattern that every 48 bits the 16 bits store the
           62         same information.
           63         And the compression-algorithms get better and better
           64         at this.
           65         Same applies to the idea of having 16 bits per channel.
           66         It sounds excessive, but if you for instance only have
           67         a greyscale image, the R, G and B channels will store
           68         the same value, which is recognized by the compression
           69         algorithm easily.
           70         This effectively leads to filesizes you'd normally only
           71         reach with paletted images, and in some cases bzip2 even
           72         beats png's compression, for instance when you're dealing
           73         with grayscale data, line drawings, decals and even
           74         photographs.