Skip to content

markrypt0/pgm-to-rle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

pgm-to-rle

Convert pgm image files to RLE format expected by the keepkey

Installation

go get -u github.com/markrypt0/pgm-to-rle
go install github.com/markrypt0/pgm-to-rle

Usage

pgm-to-rle [flags] file [output_struct_prefix]

Input Format

Images are expected to be stored as space separated integer values(0-255) with newlines between rows.
example:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   
0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 200 200 200 200 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 200 0 0 200 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 200 200 200 200 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 200 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 200 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Files exported from gimp in pgm format are also supported

Output Format

const uint8_t fox_screensaver_data[886] =
{
    0x32, 0x0, 0x2, 0x20, 0x1e, 0x0, 0xfe, 0x30, 0x10, 0x8, 0x0, 0xfc, 0x30, 0x50, 0x40, 0x20, 0x19, 0x0, 0xfe, 0x10, 0x30, 0x2, 0x60, 0xff, 0x10, 0x8, 0x0, 0xff, 0x20, 0x3, 0x50, 0xfe, 0x40, 0x20, 0x15, 0x0, 0xfd, 0x10, 0x40, 0x60, 0x2, 0x70, 0xff, 0x50, 0x9, 0x0, 0xff, 0x10, 0x4, 0x50, 0xfc, 0x60, 0x50, 0x30, 0x10, 0x10, 0x0, 0xfd, 0x20, 0x40, 0x60, 0x2, 0x70, 0xfd, 0x60, 0x70, 0x40, 0xa, 0x0, 0x5, 0x50, 0x2, 0x60, 0xfd, 0x50, 0x40, 0x20, 0xc, 0x10, 0xfd, 0x30, 0x50, 0x60, 0x2, 0x70, 0x3, 0x60, 0xfe, 0x70, 0x30, 0xa, 0x0, 0xff, 0x40, 0x3, 0x50, 0x6, 0x60, 0x3, 0x50, 0x6, 0x40, 0x2, 0x50, 0x3, 0x60, 0xff, 0x70, 0x6, 0x60, 0xff, 0x20, 0xa, 0x0, 0xff, 0x30, 0x3, 0x50, 0xa, 0x60, 0x3, 0x50, 0xe, 0x60, 0xff, 0x10, 0xa, 0x0, 0xfd, 0x20, 0x60, 0x50, 0xc, 0x60, 0xff, 0x50, 0xe, 0x60, 0xff, 0x50, 0xb, 0x0, 0xff, 0x10, 0x2, 0x50, 0x1b, 0x60, 0xff, 0x40, 0xb, 0x0, 0xfe, 0x10, 0x50, 0x1c, 0x60, 0xff, 0x30, 0xc, 0x0, 0xff, 0x40, 0x1c, 0x60, 0xff, 0x20, 0xc, 0x0, 0xff, 0x30, 0x1c, 0x60, 0xff, 0x10, 0xc, 0x0, 0xff, 0x30, 0x3, 0x60, 0xff, 0x50, 0x13, 0x60, 0xff, 0x50, 0x3, 0x60, 0xff, 0x50, 0xd, 0x0, 0xff, 0x20, 0x2, 0x60, 0xff, 0x50, 0x15, 0x60, 0xff, 0x50, 0x2, 0x60, 0xff, 0x40, 0xd, 0x0, 0xff, 0x10, 0x2, 0x50, 0x17, 0x60, 0x2, 0x50, 0xff, 0x30, 0xd, 0x0, 0xfe, 0x10, 0x50, 0x19, 0x60, 0xfe, 0x50, 0x10, 0xd, 0x0, 0xff, 0x30, 0x1a, 0x60, 0xfe, 0x50, 0x10, 0xd, 0x0, 0xff, 0x50, 0x1b, 0x60, 0xfe, 0x70, 0x20, 0xb, 0x0, 0xff, 0x10, 0x1c, 0x60, 0xfe, 0x70, 0x40, 0xb, 0x0, 0xff, 0x30, 0x1c, 0x60, 0xfe, 0x70, 0x60, 0xb, 0x0, 0xff, 0x50, 0x1d, 0x60, 0xfe, 0x70, 0x20, 0x9, 0x0, 0xff, 0x10, 0x1e, 0x60, 0xfe, 0x70, 0x40, 0x9, 0x0, 0xff, 0x30, 0x1e, 0x60, 0xfe, 0x70, 0x60, 0x9, 0x0, 0xfe, 0x10, 0x40, 0x1b, 0x60, 0x2, 0x70, 0xfe, 0x60, 0x20, 0xb, 0x0, 0xff, 0x40, 0x2, 0x70, 0x17, 0x60, 0xfd, 0x70, 0x60, 0x30, 0xc, 0x0, 0xff, 0x40, 0x3, 0x60, 0xff, 0x70, 0x14, 0x60, 0x2, 0x70, 0xfe, 0x50, 0x10, 0xc, 0x0, 0xff, 0x40, 0x5, 0x60, 0x2, 0x70, 0x11, 0x60, 0xfd, 0x70, 0x60, 0x30, 0xc, 0x0, 0xfd, 0x10, 0x60, 0x70, 0x6, 0x60, 0xfe, 0x50, 0x70, 0xe, 0x60, 0x2, 0x70, 0xfe, 0x50, 0x10, 0xc, 0x0, 0xfd, 0x20, 0x60, 0x70, 0x8, 0x60, 0xfe, 0x50, 0x70, 0xc, 0x60, 0xfc, 0x70, 0x60, 0x50, 0x20, 0xc, 0x0, 0xfd, 0x20, 0x60, 0x70, 0x9, 0x60, 0x2, 0x50, 0xff, 0x70, 0x4, 0x60, 0xfd, 0x80, 0xa0, 0x80, 0x3, 0x60, 0xfe, 0x70, 0x50, 0x2, 0x40, 0xc, 0x0, 0xfd, 0x20, 0x60, 0x70, 0xb, 0x60, 0x2, 0x50, 0xff, 0x70, 0x2, 0x60, 0xf8, 0x70, 0xd0, 0xf0, 0xd0, 0x70, 0x60, 0x70, 0x60, 0x2, 0x40, 0xff, 0x30, 0xb, 0x0, 0xff, 0x30, 0x2, 0x70, 0xc, 0x60, 0x3, 0x50, 0x2, 0x70, 0xff, 0xa0, 0x3, 0xf0, 0xfd, 0xd0, 0x70, 0x50, 0x3, 0x40, 0xff, 0x10, 0xa, 0x0, 0xfe, 0x40, 0x70, 0xf, 0x60, 0x3, 0x50, 0xff, 0x70, 0x5, 0xf0, 0xfe, 0xb0, 0x30, 0x2, 0x40, 0xff, 0x30, 0xa, 0x0, 0xfe, 0x10, 0x70, 0x10, 0x60, 0x4, 0x50, 0xff, 0xa0, 0x3, 0xf0, 0xfd, 0xd0, 0x50, 0x30, 0x2, 0x40, 0xff, 0x20, 0xa, 0x0, 0xfe, 0x10, 0x70, 0x10, 0x60, 0x4, 0x50, 0xfc, 0x40, 0xa0, 0xf0, 0xe0, 0x2, 0x30, 0x3, 0x40, 0xff, 0x10, 0xa, 0x0, 0xfe, 0x10, 0x70, 0x11, 0x60, 0x5, 0x50, 0xfd, 0xa0, 0x60, 0x30, 0x3, 0x40, 0xff, 0x30, 0xb, 0x0, 0xfe, 0x10, 0x70, 0x11, 0x60, 0x5, 0x50, 0x2, 0x30, 0x4, 0x40, 0xff, 0x20, 0xb, 0x0, 0xfe, 0x10, 0x70, 0x12, 0x60, 0x5, 0x50, 0x5, 0x40, 0xc, 0x0, 0xfe, 0x10, 0x70, 0x12, 0x60, 0x5, 0x50, 0x4, 0x40, 0xff, 0x30, 0xc, 0x0, 0xfe, 0x10, 0x70, 0x12, 0x60, 0x5, 0x50, 0x4, 0x40, 0xff, 0x10, 0xc, 0x0, 0xfe, 0x20, 0x70, 0xc, 0x60, 0x3, 0x50, 0x4, 0x60, 0x4, 0x50, 0x3, 0x40, 0xff, 0x30, 0xd, 0x0, 0xfd, 0x10, 0x60, 0x70, 0xd, 0x60, 0x3, 0x50, 0x2, 0x60, 0x4, 0x50, 0x3, 0x40, 0xff, 0x20, 0xe, 0x0, 0xfe, 0x30, 0x70, 0xf, 0x60, 0x7, 0x50, 0x3, 0x40, 0xff, 0x10, 0xf, 0x0, 0xfe, 0x50, 0x70, 0x10, 0x60, 0x5, 0x50, 0x2, 0x40, 0xff, 0x30, 0x10, 0x0, 0xfd, 0x10, 0x60, 0x70, 0x10, 0x60, 0x2, 0x70, 0xfe, 0x40, 0x50, 0x2, 0x40, 0xff, 0x20, 0x11, 0x0, 0xff, 0x30, 0x2, 0x70, 0xf, 0x60, 0xf9, 0xd0, 0xf0, 0xb0, 0x40, 0x20, 0x30, 0x10, 0x12, 0x0, 0xfe, 0x60, 0x70, 0xd, 0x60, 0xfe, 0x50, 0xb0, 0x3, 0xf0, 0xfd, 0xe0, 0x90, 0x20, 0x13, 0x0, 0xfd, 0x20, 0x60, 0x70, 0xb, 0x60, 0xfe, 0x50, 0xa0, 0x6, 0xf0, 0xfe, 0xd0, 0x60, 0x13, 0x0, 0xfe, 0x40, 0x70, 0xb, 0x60, 0xff, 0x80, 0x9, 0xf0, 0xfe, 0xb0, 0x40, 0x12, 0x0, 0xfe, 0x60, 0x70, 0x9, 0x60, 0xfe, 0x70, 0xe0, 0xb, 0xf0, 0xfe, 0xa0, 0x10, 0x10, 0x0, 0xfe, 0x20, 0x70, 0x9, 0x60, 0xff, 0xc0, 0xd, 0xf0, 0xff, 0x40, 0x11, 0x0, 0xfe, 0x40, 0x70, 0x6, 0x60, 0xfe, 0x50, 0xc0, 0xe, 0xf0, 0xff, 0x40, 0x11, 0x0, 0xfd, 0x10, 0x60, 0x70, 0x4, 0x60, 0xfe, 0x50, 0xa0, 0xf, 0xf0, 0xff, 0x40, 0x12, 0x0, 0xfe, 0x30, 0x70, 0x4, 0x60, 0xff, 0x90, 0x10, 0xf0, 0xff, 0x40, 0x13, 0x0, 0xfe, 0x50, 0x70, 0x2, 0x60, 0xff, 0x80, 0x11, 0xf0, 0xff, 0x40, 0x13, 0x0, 0xff, 0x10, 0x2, 0x60, 0xfe, 0x70, 0xe0, 0x11, 0xf0, 0xff, 0x40, 0x14, 0x0, 0xfd, 0x30, 0x60, 0xc0, 0x10, 0xf0, 0xfd, 0xe0, 0x90, 0x10, 0x15, 0x0, 0xfb, 0x40, 0x70, 0x90, 0xc0, 0xe0, 0xc, 0xf0, 0xfe, 0x80, 0x30, 0x19, 0x0, 0xfb, 0x20, 0x40, 0x60, 0x90, 0xc0, 0x8, 0xf0, 0xfe, 0xb0, 0x40, 0x1e, 0x0, 0xfb, 0x20, 0x30, 0x60, 0xa0, 0xd0, 0x3, 0xf0, 0xfe, 0xb0, 0x50, 0x22, 0x0, 0x2, 0x10, 0xfb, 0x30, 0x70, 0xa0, 0x70, 0x10, 0x11, 0x0
};
static const Image fox_screensaver_image = {42, 60, 886, fox_screensaver_data};

Examples

Convert with screensaver animation

pgm-to-rle -screensaver fox.pgm fox_screensaver

Convert with logo animation

pgm-to-rle -logo fox.pgm fox_logo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages