Calamus Raster Graphic
Line 21: | Line 21: | ||
|0 || 10 || signature || "<code>CALAMUSCRG</code>" || | |0 || 10 || signature || "<code>CALAMUSCRG</code>" || | ||
|- | |- | ||
− | |10 || 2 || || <code>03 e8</code> || Unknown. By analogy to CVG, maybe a code for the format version. | + | |10 || 2 || || <code>03 e8</code> || Unknown. By analogy to [[Calamus Vector Graphic|CVG]], maybe a code for the format version. |
|- | |- | ||
|12 || 2 || || <code>00 02</code> || Unknown. By analogy to CVG, maybe a code for the page size. | |12 || 2 || || <code>00 02</code> || Unknown. By analogy to CVG, maybe a code for the page size. | ||
Line 47: | Line 47: | ||
=== RLE compression === | === RLE compression === | ||
+ | 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: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Code byte (N) !! Instructions | ! Code byte (N) !! Instructions | ||
Line 55: | Line 56: | ||
|} | |} | ||
− | After decompression, pixels are in left-to-right, top-to-bottom order. 8 pixels per byte, most significant bit first, white is 0. Rows are padded to the next byte boundary. | + | 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. |
== Software == | == Software == |
Revision as of 18:49, 15 July 2016
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.
Contents |
Identification
CRG files apparently begin with the ASCII signature "CALAMUSCRG
".
Format details
[Partial decoding, based on analysis of a small number of CRG files. This may be incorrect.]
Multi-byte integers are big-endian.
Offset | Length | Field | Observed values | Details |
---|---|---|---|---|
0 | 10 | signature | "CALAMUSCRG " |
|
10 | 2 | 03 e8 |
Unknown. By analogy to CVG, maybe a code for the format version. | |
12 | 2 | 00 02 |
Unknown. By analogy to CVG, maybe a code for the page size. | |
14 | 4 | (file size, minus 24) | ||
18 | 2 | 00 80 |
Unknown | |
20 | 4 | width | Image width in pixels | |
24 | 4 | height | Image height in pixels | |
28 | 4 | (various) | Unknown | |
32 | 1 | 01 |
Unknown | |
33 | 1 | 00 |
Unknown | |
34 | 4 | ff ff ff ff |
Unknown | |
38 | 4 | cmpr_size | Size of compressed image data, in bytes | |
42 | cmpr_size | cmpr_image_data | Compressed image data (see below) |
RLE compression
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. |
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.