PCPaint PIC

PCPaint PIC, also known as Pictor format, is an image format associated with the PCPaint family of raster image editing software for DOS. The software was originally developed by John Bridges and Douglas Wolfgram, and published by Mouse Systems and Microtex. The PCPaint family also includes PC Paint Plus and Pictor.

"PC Paint" (with a space) seems to be the most authoritative spelling, though "PCPaint" is perhaps more common.

The software has several native graphics formats. This article is focused on the format with the 0x34 0x12 signature, which we'll call "PIC", though other formats also use the .pic filename extension. This article also covers the software in general.

A PIC file usually contains a raster image, but text modes (character graphics) are also possible.

There are separate articles for some formats:
 * PCPaint CLP
 * BSAVE (uncompressed): Refer to PCPaint BSAVE.
 * Compressed BSAVE: Refer to PCPaint BSAVE.

Disambiguation
Be aware that there are about four different formats that could be known as "PCPaint PIC". This article and related articles attempt to explain the situation.

Not to be confused with the PC Paintbrush family of software, and the associated PCX format.

Format details
For most PIC files, the byte at offset 11 (named "emark" or "PaletteFlag") has value. The header consists of 19 or more bytes, of which the first 17 have a fixed layout. At offset 17 is a variable-length "extra data" field, which if present usually contains the palette, or information about the palette. If the last two bytes of the header (after the "extra data") are 0, the image is uncompressed; otherwise it is compressed with run-length encoding.

Some files with an extension of .clp use the PIC format described in this article, and some use a different "clipping" format.

Images in PIC files can be stored in a variety of ways, and it is somewhat challenging to decode all of them.

Old format
There might be an "old" PIC format, which starts with  but does not have   at offset 11. It is mentioned in the Encyclopedia of Graphics File Formats ("If the Marker field value is not FFh..."), and is possibly written by Iconvert. But it's vanishingly rare at best, and it's not clear what version of PC Paint it would be associated with.

Identification
Files begin with signature bytes.

Except possibly for the obscure "old format", the byte at offset 11 is.

Specifications

 * from the Encyclopedia of Graphics File Formats
 * PCPAINT/Pictor description by John Bridges himself
 * Picture format docs (of a number of formats including this one)

Software

 * PCPaint family
 * PCPaint 3.1
 * PC Paint 1.00A, at WinWorld
 * PC Paint 2.x, at WinWorld
 * PC Paint 3.x, at WinWorld
 * Varous versions at old-dos.ru - Has 1.00A & 2.01
 * - Includes Pictor (no clear version number)
 * Konvertor
 * XnView
 * FFmpeg
 * FFmpeg
 * FFmpeg

Sample files

 * http://samples.libav.org/image-samples/pictor/
 * https://telparia.com/fileFormatSamples/image/pcPaint/
 * PCPaint31-Installed.zip → *.PIC
 * ...: See the for "GRASP PICTURE" files.
 * One place to find PIC files is inside of GRASP GL container files. (But be warned that such PIC files cannot always stand alone, as they may be scripted to use a palette not contained in that PIC file.)
 * → wsscreen.pic - Example of a text mode PIC

Links

 * PICtor PIC image format
 * PCPaint