Calamus Raster Graphic

From Just Solve the File Format Problem
Revision as of 02:57, 28 December 2023 by Dexvertbot (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
File Format
Name Calamus Raster Graphic
Extension(s) .crg

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 "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.

(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.


Sample files

Personal tools