UTFTConverter

Processing popular picture formats into .c or .raw format in RGB565

http://github.com/cirquit/UTFTConverter

Latest on Hackage:0.1.0.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

MIT licensed by Alexander Isenko
Maintained by Alexander Isenko

About:

This package was created because I could not find a tool that can be used on UNIX systems to parse a picture into an array of RGB565 values and save them to a '.c' or '.raw' file. Both formats are used by the UTFT library to display pictures on to a TFT display.

This package includes, but not limited to, an executable which is made to be as identical as possible to the corresponding tool that is also downloaded with the UTFT library.

Usage:

./UTFTConverter <filespec> /c|r [/o <path>] [/t AVR|ARM|PIC32]

<filespec>:  File(s) to convert
parameters: /c            - Create output as .c array files
            /r            - Create output as .raw files
            /o <path>     - Set the output directory to <path>
            /t <platform> - Select target plaform
                            AVR   : Most Arduinos, Bobuion
                            ARM   : Arduino Due, Teensy, TI CC3200 LaunchPad
                            PIC32 : All chipKit boards

You must specify either /c or /r. All other parameters are optional.
If /o is ommited the current directory will be used for output.
If /t is ommited the target platform will be set to AVR.'

Supported formats:

The binary tests if the pictures are encoded correctly via magic bytes using ImageType. If the extention is wrong, but the encoding is correct, it will still try to convert the picture.

The exported library is using JuicyPixels to convert incoming

  • '.gif'

  • '.png'

  • '.jpg' / '.jpe' / '.jpeg'

  • '.bmp'

  • '.tga'

and translates every pixel to a RGB565 format, which is a 4 digit hex number.

Library:

The only really reusable library is the Format.RGB565. It support the conversion from

  • RGB to RGB565 as (Word8, Word8, Word8) -> Int

  • Int to Hex as Int -> String

Example usage:

>>> toRGB565 (0, 0, 255)
31
>>> toRGB565Hex (0, 0, 255)
"001F"
>>> toHex 100
64
>>> toNHex 6 100
"0064"