Calamus Raster Graphic
Calamus Raster Graphic (CRG) is a graphics format associated with the Calamus desktop publishing software by invers Software. At least some CRG images are compressed using a simple run-length encoding scheme.
Refer to Calamus for more information about the software, and related formats.
CRG files apparently begin with the ASCII signature "
[Partial decoding, based on analysis of a small number of CRG files. This may be incorrect.]
Multi-byte integers are big-endian.
||Unknown. By analogy to CVG, maybe a code for the format version.|
||Unknown. By analogy to CVG, maybe a code for the page size.|
|14||4||(file size, minus 24)|
|20||4||width||Image width in pixels|
|24||4||height||Image height in pixels|
|38||4||cmpr_size||Size of compressed image data, in bytes|
|42||cmpr_size||cmpr_image_data||Compressed image data (see below)|
The compressed data consists of a code byte, followed by one or more data bytes, followed by another code byte, and so on. To decompress:
|Code byte (N)||Instructions|
|N ≤ 127||Emit the next N+1 bytes literally.|
|N ≥ 128||Emit the next byte N−127 times.|
(This is essentially the same algorithm as in TGA, but byte-oriented instead of pixel-oriented.)
After decompression, pixels are in left-to-right, top-to-bottom order. The format is 8 pixels per byte, most significant bit first, white is 0. Rows are padded to the next byte boundary.