File types · Explainer

The PICT file (.pict, .pct, .pic)

A PICT file is an Apple QuickDraw picture: the standard graphics format of the classic Mac OS, which records drawing commands as opcodes and can hold vector shapes, text and bitmaps in one file. This guide explains what's inside one, the 512-byte header and the picture versions, why modern Macs struggle to open PICT files, and how to convert them today.

At a glance

Full name
Apple QuickDraw Picture, file type PICT
Extensions
.pict, .pct, .pic; classic Mac files often had no extension, only the hidden file type PICT
MIME type
None registered with IANA; image/x-pict by convention. Apple's type identifier is com.apple.pict
Kind
Binary metafile: a sequence of QuickDraw drawing commands, with vector shapes, text and bitmaps
Standard or owner
Apple; documented in Inside Macintosh: Imaging With QuickDraw
First released
1984 with the original Macintosh (version 1); version 2 came with Color QuickDraw and the Macintosh II
Header
In files, 512 unused bytes, then the picture's size and frame
Magic number
None at the start. At byte 522: 00 11 02 FF 0C 00 for version 2, 11 01 for version 1
Limits
Version 1 pictures can't exceed 32 KB; version 2 removed that limit
Opens with
LibreOffice, ImageMagick (bitmap pictures), GraphicConverter, Photoshop (bitmap pictures only); not GIMP or web browsers

The basics

What is a PICT file?

PICT is the picture format of QuickDraw, the graphics engine of the classic Mac OS. When a program drew into a QuickDraw picture, QuickDraw recorded each command (a line, a filled rectangle, a run of text, a bitmap) as an opcode with its data. Playing the picture back with DrawPicture repeated those commands, at any size. That makes PICT a metafile: like PDF or EPS, it can hold vector shapes and text as well as pixels.

On classic Macs PICT was everywhere. A picture could be saved as a file of type PICT, stored as a PICT resource inside any file, or put on the clipboard, where PICT was one of the two standard formats, next to plain text. Copying a drawing from one program and pasting it into another went through PICT.

When Apple moved to Mac OS X, PDF became the native metafile format and QuickDraw was phased out. You meet PICT files today in archives of 1980s and 1990s Mac work: clip art, scans, diagrams, illustrations from old desktop publishing projects and graphics inside old documents.

Anatomy

What's inside a PICT file

A PICT file is a 512-byte header that applications may use as they like, then a QuickDraw picture: its size, its bounding rectangle, and a list of opcodes, each a command with its data, ending with an end-of-picture opcode. Below is a 658-byte file that ImageMagick wrote for this page from a 3 × 2 image (red, green and blue over yellow, white and black), with each part labelled. It holds one opcode that draws a bitmap; a drawing would hold opcodes for lines, shapes and text instead. It isn't offered for download.

tiny.pict (hex, 658 bytes)
tiny.pict: 3 × 2 pixels, extended version 2, 658 bytes

offset  bytes                          part
0000    00 00 00 … (512 bytes)         file header: free for applications, here zeros
0200    02 00                          picSize: not meaningful in version 2
0202    00 00 00 00 00 02 00 03        picFrame: top 0, left 0, bottom 2, right 3
020A    00 11  02 FF                   VersionOp, version 2
020E    0C 00                          HeaderOp: 24 bytes of header follow
0210    FF FE  00 00                   -2: extended version 2; reserved
0214    00 48 00 00  00 48 00 00       best resolution: 72 × 72 dpi
021C    00 00 00 00 00 02 00 03        source rectangle
0224    00 00 00 00                    reserved
0228    00 01  00 0A  00 00 00 00 00 02 00 03
                                       Clip: a 10-byte region, the frame
0234    00 9A                          DirectBitsRect: a direct-colour bitmap
0236    00 00 00 FF                    baseAddr: always $000000FF
023A    80 0C                          rowBytes 12; top bit set: a PixMap
023C    00 00 00 00 00 02 00 03        bounds
0244    00 00  00 04  00 00 00 00      version 0, packType 4, packSize 0
024C    00 48 00 00  00 48 00 00       resolution: 72 dpi
0254    00 10  00 20  00 03  00 08     direct colour, 32 bits a pixel, 3 × 8-bit components
025C    00 00 00 00  × 3               planeBytes, pmTable, reserved
0268    00 00 00 00 00 02 00 03        srcRect
0270    00 00 00 00 00 02 00 03        dstRect
0278    00 40                          transfer mode
027A    0A  00 FF FE 00 00 FF FE 00 00 FF
                                       top row: 10 bytes of PackBits
0285    0A  08 FF FF 00 FF FF 00 00 FF 00
                                       bottom row
0290    00 FF                          OpEndPic: end of picture
  1. 100 00 00 … (512 bytes)

    The file header

    Apple reserved the first 512 bytes of a PICT file for the application that made it. Most writers fill them with zeros. QuickDraw itself never reads them, and PICT data on the clipboard or in a resource doesn't have them.

  2. 202 00 00 00 00 00 00 02 00 03

    Size and frame

    picSize is a 16-bit length that only makes sense for small version 1 pictures; Apple tells programs to ignore it in version 2. picFrame is the picture's bounding rectangle: top, left, bottom, right.

  3. 300 11 02 FF

    The version opcode

    0011 then 02FF: version 2, so every following opcode is 2 bytes and aligned on an even byte. A version 1 picture has 11 01 here, with 1-byte opcodes. These bytes at offset 522 are how tools recognise a PICT file.

  4. 40C 00 FF FE …

    The header opcode

    0C00 and 24 bytes. FFFE (−2) marks an extended version 2 picture, which records its best resolution, here 72 dpi in both directions as fixed-point numbers, and a source rectangle. FFFF would mean plain version 2.

  5. 500 01 00 0A …

    Clip

    Opcode 0001 sets the clipping region: drawing outside it is cut off. A region is a size (10 bytes here: just a rectangle) and a bounding box.

  6. 600 9A 00 00 00 FF

    DirectBitsRect

    Opcode 009A draws a direct-colour bitmap. Its first field is a memory address that means nothing in a file, so it's always 000000FF.

  7. 780 0C … 00 10 00 20 00 03 00 08

    The PixMap

    A description of the bitmap: 12 bytes a row (the top bit of 800C marks a colour PixMap), its bounds, packing type 4 (each colour component packed separately), and 32 bits a pixel made of 3 components of 8 bits.

  8. 80A 00 FF FE 00 00 FF FE 00 00 FF

    A packed row

    A byte count (10), then the row compressed with PackBits: 00 FF means 1 literal byte FF; FE 00 means 00 three times. Unpacked, that's the red values FF 00 00, then green 00 FF 00, then blue 00 00 FF: red, green and blue pixels. Rows go top to bottom.

  9. 900 FF

    End of picture

    Opcode 00FF ends a version 2 picture. In version 1 it's the single byte FF.

Under the hood

How a PICT picture works: opcodes

A picture is picSize, picFrame and then a list of opcodes. Here is Apple's own example of a small version 1 picture, decompiled, from Inside Macintosh. It fills a rectangle and an oval with patterns and paints a triangle, in 79 bytes:

A version 1 picture (Inside Macintosh, listing A-7)
$"004F"                 /* picture size: 79 bytes */
$"0002 0002 006E 00AA"  /* bounding rectangle */
$"11" $"01"             /* version 1 */
$"01" $"000A" $"0002 0002 006E 00AA"   /* clip region */
$"0A" $"77DD 77DD 77DD 77DD"           /* fill pattern */
$"34" $"0002 0002 006E 00AA"           /* fillRect */
$"0A" $"8822 8822 8822 8822"           /* fill pattern */
$"5C"                                  /* fillSameOval */
$"71" $"001A" …                        /* paintPoly: a polygon */
$"FF"                                  /* end of picture */

A few opcodes you'll see in version 2 pictures:

OpcodeNameWhat it does
0011VersionOpFirst opcode; 02FF follows for version 2
0C00HeaderOp24 bytes: version, resolution, source rectangle
0001ClipSets the clipping region
0034fillRectFills a rectangle with the current pattern
0098PackBitsRectDraws a colour-mapped bitmap, compressed with PackBits
009ADirectBitsRectDraws a direct-colour (16 or 32-bit) bitmap
00A1LongCommentAn application comment: a kind, a size and data
8200CompressedQuickTimeImage data compressed by QuickTime, for example JPEG
00FFOpEndPicEnd of the picture

Version 2 opcodes are words, and odd-sized data is followed by a zero byte so the next opcode starts on an even byte. Many opcodes are reserved, with sizes defined by rule, so an old reader can skip opcodes it doesn't know. Comments (00A0, 00A1) let applications store extra data, such as the original drawing objects, that other programs ignore.

Versions

Picture versions and the 512-byte header

VersionOpcodesNotes
Version 11 byte; starts 11 01, ends FFOriginal QuickDraw, black and white. Limited to 32 KB
Version 22 bytes, word-aligned; starts 0011 02FF, header version FFFFColor QuickDraw: colour, PixMaps, a fixed-point bounding box
Extended version 2As version 2; header version FFFEAdds the best resolution, so pictures aren't tied to 72 dpi

The 512-byte header exists only in PICT files: Apple's documentation says the data fork of a PICT file begins with 512 bytes the application can use for its own purposes, followed by the picture. The same picture as a resource or on the clipboard starts straight with picSize. That's why file-type databases look for the version opcode at byte 522 (512 + 2 for the size + 8 for the frame), and why a PICT extracted from a resource needs 512 bytes added in front before most programs will open it.

Old Macs and version 2

On system software before version 4.1, DrawPicture read the 02 of a version 2 picture as the version number and the FF as end of picture, so it stopped without drawing anything.

Deprecation

Why modern Macs struggle with PICT

  • Mac OS X replaced PICT with PDF as the native metafile format, though many applications kept reading PICT because it was so common.
  • QuickDraw was deprecated in Mac OS X 10.4 Tiger and never made available to 64-bit programs. From then on, 64-bit software could only convert PICT data through a 32-bit helper process. As Mac software went 64-bit, and 32-bit code was removed altogether, built-in PICT support grew patchy.
  • Preview is unreliable with PICT files. The 64-bit Preview in Mac OS X 10.6 already reported PICT as unsupported, and users of later macOS versions report files that won't open or show up blank. Apple hasn't documented when or how support changed, so don't count on it.
  • Photoshop can still open PICT files that contain only bitmaps, but not those built from QuickDraw drawing objects, and it can no longer save PICT.
  • GIMP has never supported PICT.

Comparison

PICT vs PDF, EPS and TIFF

PICTPDFEPSTIFF
Vector and textYes, as QuickDraw commandsYesYes, as PostScriptNo
BitmapsYes, PackBits or QuickTime-compressedYesYesYes, the main purpose
PlatformClassic Mac OSEverywherePrint and design softwareEverywhere
Still supportedBarelyYesIn design and print toolsYes
Opens in a browserNoYesNoOnly Safari

PDF is PICT's direct successor on the Mac. To preserve an old PICT, convert drawings to PDF or SVG and bitmaps to PNG or TIFF, keeping the original file alongside.

How to

How to open and convert old PICT files today

  • LibreOffice (Windows, macOS, Linux) opens PICT files in Draw. From there, export as PDF or SVG to keep a drawing as vectors, or as PNG. On the command line, soffice --headless --convert-to pdf picture.pct does it without opening a window.
  • ImageMagick reads PICT files that hold bitmaps, which covers most scans and screenshots: magick picture.pict picture.png (convert in ImageMagick 6). It needs the 512-byte header.
  • GraphicConverter, a long-running Mac image tool, opens and batch-converts PICT files on current macOS.
  • Photoshop opens bitmap-only PICTs; save them as PNG or TIFF.
  • Classic Mac OS in an emulator is the last resort for drawings that only the original application (MacDraw, Canvas, ClarisDraw) renders correctly: open them there and export.

Missing header?

If a tool says the header is improper but the file came from a resource, the clipboard or an extraction tool, add 512 zero bytes in front: { head -c 512 /dev/zero; cat picture.pict; } > fixed.pict on macOS or Linux. Then try again.

Troubleshooting

Common PICT problems

  • The file has no extension. Classic Mac OS identified files by a hidden four-letter type code, not an extension, and that code is lost when files pass through other systems. Look for 00 11 02 FF or 11 01 at byte 522, then add .pict.
  • It opens blank, white or not at all. The program only reads bitmaps and the picture is a drawing, or the program has no PICT support any more. Try LibreOffice.
  • Text looks wrong. QuickDraw text refers to fonts by Mac font names and old Mac character sets. Missing fonts are replaced, and accented characters can come out wrong. Check text after converting.
  • Images inside are missing. Bitmaps compressed with QuickTime (opcode 8200) need a QuickTime-aware reader. Not every converter has one.
  • Lines and shapes are jagged after converting. The converter rasterised the drawing. Export as PDF or SVG from LibreOffice to keep vectors.

A PICT file contains drawing commands and comments, not scripts. Treat old files from unknown sources like any other complex binary: keep converters updated, since parsing a long list of opcodes with lengths and regions is the kind of code where bugs hide.

Sample files

There are no sample PICT files on this page yet. To make one for testing, convert any image with ImageMagick: magick input.png output.pict (or convert in ImageMagick 6).

Put it online

Have a PICT file? Give it a link.

Drop a PICT file on 99helpers and it gets its own web address. Browsers can't display PICT, so anyone who opens the link downloads the file; to have the picture seen in the browser, upload a PNG or PDF copy next to it.

Questions

PICT files, frequently asked

What is a PICT file?

An Apple QuickDraw picture, the standard graphics format of the classic Mac OS. It records drawing commands, so it can hold vector shapes, text and bitmaps.

How do I open a PICT file on a modern Mac?

Preview may not open it. Use LibreOffice, GraphicConverter or ImageMagick, or Photoshop for bitmap-only files, and convert the picture to PDF or PNG.

How do I open a PICT file on Windows?

Open it in LibreOffice Draw and export it, or convert it with ImageMagick (magick picture.pict picture.png).

How do I convert PICT to PDF or PNG?

LibreOffice keeps drawings as vectors: soffice --headless --convert-to pdf picture.pct. For bitmaps, ImageMagick's magick picture.pict picture.png works.

What is the 512-byte header in a PICT file?

Space reserved for the application that wrote the file. QuickDraw ignores it, and it's usually zeros. Pictures stored as resources or on the clipboard don't have it.

Is PICT a vector or a bitmap format?

Both. It's a list of QuickDraw commands, which can draw lines, shapes and text or place bitmaps. Many PICT files in archives hold a single bitmap.

What replaced PICT?

PDF, which became the Mac's native metafile format with Mac OS X.

Related formats

Other file types explained

Keep going

Related

Sources

Last reviewed 27 October 2026.