{"id":"image-x-pict","mimeType":"image/x-pict","name":"Apple PICT Image","shortName":"PICT","category":"Legacy \u0026 Metafile Graphics","extensions":[".pict",".pct",".pic"],"description":"The image/x-pict MIME type represents the PICT image format, introduced by Apple Computer in 1984 as the native graphics format for the original Macintosh and its QuickDraw API. As a \"metafile\" format, PICT files can contain both bitmap (raster) and object-oriented (vector) graphic data within the same file. It was heavily utilized in classic Mac OS for clipboard operations, desktop publishing, and digital art. With the transition to Mac OS X, Apple deprecated the QuickDraw API and replaced PICT with PDF as the operating system's native metafile format, rendering PICT completely obsolete today.","seo":{"title":"image/x-pict MIME Type | Developer Reference for Apple PICT","description":"Complete reference for the image/x-pict MIME type: Apple PICT format, QuickDraw graphics, classic Mac OS, and legacy metafile handling.","faqs":[{"question":"What is a PICT file?","answer":"A PICT file is a legacy graphics format developed by Apple in 1984 for the original Macintosh. It is a metafile, meaning it can store both raster images (like photographs) and vector graphics (like lines, shapes, and text) in the same file."},{"question":"Can modern Macs open PICT files?","answer":"Native support for PICT files was progressively removed from macOS as Apple transitioned to 64-bit architecture and fully deprecated the QuickDraw API. Today, you typically need third-party legacy image viewers like GraphicConverter or XnView to open them."},{"question":"Why did Apple stop using PICT?","answer":"PICT was heavily tied to the classic Mac OS QuickDraw graphics engine and the big-endian PowerPC/Motorola architectures. When Apple built Mac OS X on a Unix foundation with the modern Quartz graphics engine, they adopted the open PDF standard as the system's native metafile format instead."}]},"index":{"compression":["Uncompressed","Run-Length Encoding (RLE)","QuickTime Compressors (JPEG, SMC)"],"browserSupport":{"score":1,"label":"None"},"commonUses":["Classic Mac OS Clipboard Data","Legacy Macintosh Desktop Publishing (Aldus PageMaker, QuarkXPress)","1980s/1990s Digital Clip Art"]},"technical":{"magicBytes":{"hex":"None (Requires offset parsing, e.g., 00 11 02 FF at byte 522)","ascii":"None"},"container":"QuickDraw Metafile","compressionAlgorithm":["Apple PackBits (RLE)","QuickTime Image Compression Manager (ICM)"],"colorDepth":["1-bit","2-bit","4-bit","8-bit (Indexed)","16-bit (High Color)","24-bit (True Color)","32-bit (RGBA)"],"transparency":true,"animation":false,"metadata":{"exif":false,"xmp":false,"iccProfile":false},"alphaChannel":true,"progressiveLoading":false,"hdrSupport":false},"history":{"developer":"Apple Computer, Inc.","released":"1984","specification":"Inside Macintosh: Imaging With QuickDraw"},"browserSupport":{"chrome":false,"chromeVersion":"None","firefox":false,"firefoxVersion":"None","safari":false,"safariVersion":"None","edge":false,"edgeVersion":"None","internetExplorer":false},"softwareSupport":[{"name":"GraphicConverter (macOS)","logo":""},{"name":"XnView","logo":""},{"name":"ImageMagick","logo":"image-magic.webp"},{"name":"CorelDRAW (Legacy import)","logo":""}],"conversion":{"convertTo":["png","tiff","svg"],"convertFrom":[]},"developer":{"httpHeaders":[{"header":"Content-Type","value":"image/x-pict"},{"header":"Content-Type","value":"image/pict"}],"htmlAccept":"image/x-pict, .pict, .pct, .pic","fileDetection":["PICT files are notoriously difficult to detect programmatically because they do not have a standard magic byte sequence at the very beginning of the file.","A standard PICT file begins with a 512-byte header that was historically reserved for application-specific data and is usually padded entirely with zeroes.","The actual QuickDraw data begins at byte 512. Bytes 512-513 represent the file size (often ignored or inaccurate in Version 2). Bytes 514-521 define the picture's bounding box.","To verify a PICT file, parsers typically look at byte 522. A Version 1 PICT will have the opcode '11 01' (Hex). A Version 2 PICT will have the opcode '00 11 02 FF 0C 00' (Hex)."]},"prosCons":{"pros":["Incredibly versatile for its time, allowing a single file to cleanly scale text and vector shapes while simultaneously housing raster photos","Served as the flawless universal clipboard format for the classic Mac OS, enabling seamless copy/pasting between wildly different applications"],"cons":["Deeply tied to Apple's legacy QuickDraw graphics architecture, making it exceptionally difficult to write accurate third-party parsers on modern operating systems","Lack of a standard magic header makes file detection unreliable without seeking 522 bytes deep into the file","Completely unsupported in modern web environments and discontinued by Apple itself"]},"specifications":{"url":"https://developer.apple.com/library/archive/documentation/mac/QuickDraw/QuickDraw-2.html","rfc":"","mimeAliases":["image/pict","image/macpict","application/pict"]},"developerSnippets":{"python":"import magic\n# Libmagic can often detect PICT files by analyzing the version opcodes after the 512-byte header\nprint(magic.from_file('vintage.pict', mime=True)) # Outputs 'image/x-pict'","nodejs":"const fs = require('fs');\n// Manually sniffing for the PICT Version 2 opcode at offset 522\nconst buffer = Buffer.alloc(6);\nconst fd = fs.openSync('vintage.pict', 'r');\nfs.readSync(fd, buffer, 0, 6, 522); // Skip the 512 byte header + 2 byte size + 8 byte bounding box\nfs.closeSync(fd);\nconst isPICTv2 = buffer[0] === 0x00 \u0026\u0026 buffer[1] === 0x11 \u0026\u0026 buffer[2] === 0x02 \u0026\u0026 buffer[3] === 0xFF;\nconsole.log('Is Apple PICT (v2):', isPICTv2);","go":"import (\n    \"bytes\"\n    \"net/http\"\n    \"strings\"\n)\n// Native Go HTTP detection will not recognize PICT (returns application/octet-stream).\n// You must explicitly check the extension or write a custom parser for the 522-byte offset.\n// isPICT := strings.HasSuffix(strings.ToLower(filename), \".pct\") || strings.HasSuffix(strings.ToLower(filename), \".pict\")","php":"$mime = mime_content_type('vintage.pict');\necho $mime; // Standard PHP setups will likely return 'image/x-pict' if the magic database is up to date"},"relatedFormats":["macpaint","tiff"]}
