PICT

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(added more software)
 
(16 intermediate revisions by 5 users not shown)
Line 5: Line 5:
 
|extensions={{ext|pict}}, {{ext|pct}}, {{ext|pic}}
 
|extensions={{ext|pict}}, {{ext|pct}}, {{ext|pic}}
 
|pronom={{PRONOM|fmt/341}}, {{PRONOM|x-fmt/80}}
 
|pronom={{PRONOM|fmt/341}}, {{PRONOM|x-fmt/80}}
 +
|wikidata={{wikidata|Q2044200}}
 
|released=1984
 
|released=1984
 
}}
 
}}
'''PICT''', or '''QuickDraw/PICT''', is a complex graphics file format used on Macintosh computers. It is associated with the QuickDraw API.
+
'''PICT''', or '''QuickDraw/PICT''', is a graphics format native to Macintosh computers. It is associated with the QuickDraw API.
  
 
Though it is a vector format, it is often used as if it were a raster format. Many files contain just a single bitmap image.
 
Though it is a vector format, it is often used as if it were a raster format. Many files contain just a single bitmap image.
  
Among other places, PICT is used for graphics stored within [[Keynote]] documents.
+
PICT format is complicated and quirky. Although plenty of documentation about it exists, there does not appear to be any single source that provides a reasonably clear and complete specification.
 +
 
 +
== Format details ==
 +
When PICT is used as a standalone file format, the file usually starts with an unused 512-byte header, usually with all bytes set to 0. When PICT is embedded as a resource inside some other format, this header is usually not present.
  
 
== Identification ==
 
== Identification ==
Version 1 PICT files have (hex) bytes {{magic|11 01}} at offset 522.
+
A version 1 PICT file has (hex) bytes {{magic|11 01}} at offset 522 (or 10 if there is no header), and should end with {{magic|ff}}.
  
Version 2 PICT files have bytes {{magic|00 11 02 ff 0c 00}} at file offset 522.
+
A version 2 PICT file has bytes {{magic|00 11 02 ff 0c 00}} at offset 522 (or 10 if there is no header), and should end with {{magic|00 ff}}.
 +
 
 +
== Application data ==
 +
Custom application data can be stored in PICT files by using the "LongComment" opcode. Each comment has an integer that identifies its "kind".
 +
 
 +
* [http://www.opennt.net/projects/opennt/repository/revisions/26/entry/trunk/com/ole32/olecnv32/qdcoment.i A file with a list of comment kinds]
 +
 
 +
Notable comment kinds:
 +
* 100 is an Application Comment (see below).
 +
* 220 is used for [[ICC profile]] data.
 +
* 498 appears to be related to [[Photoshop]], though it might also be used for other things.
 +
 
 +
The "kind" does little to identify the application, or prevent collisions. A better way is to use kind 100, which has a standard way to include a 4-byte application signature.
 +
 
 +
== Related formats ==
 +
* Many bitmap images are compressed using [[PackBits]].
 +
* Opcodes 0x8200 and 0x8201 use a format based on [[QuickTime]] or [[QTIF]]. This, in turn, is often used as a wrapper for an image in [[JPEG]] format.
 +
* [[Macintosh resource file]] - Often contains "PICT" resources in this format
 +
* PICT is used for graphics stored within [[Keynote]] documents.
 +
* [[Encapsulated PostScript]]
  
 
== Specifications ==
 
== Specifications ==
 
* [https://developer.apple.com/legacy/library/documentation/mac/pdf/ImagingWithQuickDraw.pdf Inside Macintosh: Imaging With QuickDraw]
 
* [https://developer.apple.com/legacy/library/documentation/mac/pdf/ImagingWithQuickDraw.pdf Inside Macintosh: Imaging With QuickDraw]
 
* [http://show.docjava.com/posterous/file/2012/07/9614410-DOC01.PDF PICT File Format Notes]
 
* [http://show.docjava.com/posterous/file/2012/07/9614410-DOC01.PDF PICT File Format Notes]
 +
* [http://web.archive.org/web/20010703041301/http://developer.apple.com/technotes/qd/qd_14.html Macintosh Technical Note QD14 (a.k.a. TN21)]: QuickDraw's Internal Picture Definition - PICT version 1 (from archive.org)
 +
* [ftp://ftp.oreilly.com/pub/examples/9781565920583/CDROM/GFF/VENDSPEC/MACPIC/PICT.ZIP PICT.ZIP] - Probably a lot of information here, but in inconvenient formats
 +
* [http://web.archive.org/web/20010422094136/http://developer.apple.com/technotes/qd/qd_06.html Macintosh Technical Note QD06 (a.k.a TN181)]: Every Picture [Comment] Tells Its Story, Don't It? - PICT Application Comments (from archive.org)
 +
* [http://research.stowers-institute.org/efg/ScientificSoftware/Utility/TiffTags/ICC-tag.pdf HELIOS ICC profile tagging specifications] - Tells how to embed an ICC profile in a PICT file
  
 
== Software ==
 
== Software ==
 +
=== Vector-based software ===
 +
(software that can process PICT vectors as vectors)
 +
* [[Scribus]]
 +
* [https://www.libreoffice.org/ LibreOffice]
 +
 +
=== Other software ===
 
* [[Netpbm]]
 
* [[Netpbm]]
* [[ImageMagick]]
+
* [[ImageMagick]] (for PICT v2)
 +
* [https://github.com/steventroughtonsmith/image2pict1 image2pict1] (for PICT v1)
 +
* [http://www.irfanview.com/ IrfanView]
 +
* {{Deark}} (for analysis, resource extraction)
 +
* [[XnView]]
 +
 
 +
== Converting ==
 +
 
 +
=== Converting from PICT ===
 +
 
 +
An image can be converted from a PICT using [[ImageMagick]]:
 +
  convert image.pict image.png
 +
This example shows a [[PNG]] image as the destination image, but ImageMagick supports many other output formats.
 +
 
 +
=== Converting to PICT ===
 +
 
 +
An image can be converted to a PICT using ImageMagick:
 +
  convert image.png image.pict
 +
This example shows a PNG image as the source image, but ImageMagick supports many other input formats.
 +
 
 +
==== Using converted images on a classic Mac system ====
 +
 
 +
Once converted, the image can then be added to a HFS disk image using [https://linux.die.net/man/1/hfsutils hfsutils]:
 +
  hmount disk.img                      # mount the HFS disk
 +
  hcopy ./image.pict :image.pic        # copy the PICT image to the disk
 +
  hattrib -t PICT -c 8BIM :image.pic  # set the type and creator codes to ensure that the image is recognised by Mac OS
 +
  humount                              # unmount the disk
  
 
== Sample files ==
 
== Sample files ==
 
* http://www.fileformat.info/format/macpict/sample/index.htm
 
* http://www.fileformat.info/format/macpict/sample/index.htm
 
* http://cd.textfiles.com/cdreview/cdreview66/PCT01_01/PC0101P/
 
* http://cd.textfiles.com/cdreview/cdreview66/PCT01_01/PC0101P/
* http://cd.textfiles.com/fantaziasampler/CLIPART/PCT/
+
* http://cd.textfiles.com/fantaziasampler/CLIPART/PCT/ - Version 1
 +
* http://www.ngdc.noaa.gov/mgg/geology/lazarus/ch7/pict_plots/ - Vector-only PICTs
 +
* {{DexvertSamples|image/pict}}
 +
* [https://archive.org/details/parsons-photo-pics-on-cd-rom-macintosh Photo Pics PICT format for Macintosh]
  
 
== Resources ==
 
== Resources ==
 
* {{EGFF|macpict|Macintosh PICT File Format Summary}}, from the [[Encyclopedia of Graphics File Formats]]
 
* {{EGFF|macpict|Macintosh PICT File Format Summary}}, from the [[Encyclopedia of Graphics File Formats]]
* [http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PICT.html ExifTool: PICT Tags]
+
* [https://exiftool.org/TagNames/PICT.html ExifTool: PICT Tags]
 
* [[Wikipedia:PICT|Wikipedia article]]
 
* [[Wikipedia:PICT|Wikipedia article]]
  
 
[[Category:Macintosh]]
 
[[Category:Macintosh]]

Latest revision as of 12:14, 20 May 2024

File Format
Name PICT
Ontology
Extension(s) .pict, .pct, .pic
MIME Type(s) image/x-pict, image/pict
PRONOM fmt/341, x-fmt/80
Wikidata ID Q2044200
Released 1984

PICT, or QuickDraw/PICT, is a graphics format native to Macintosh computers. It is associated with the QuickDraw API.

Though it is a vector format, it is often used as if it were a raster format. Many files contain just a single bitmap image.

PICT format is complicated and quirky. Although plenty of documentation about it exists, there does not appear to be any single source that provides a reasonably clear and complete specification.

Contents

[edit] Format details

When PICT is used as a standalone file format, the file usually starts with an unused 512-byte header, usually with all bytes set to 0. When PICT is embedded as a resource inside some other format, this header is usually not present.

[edit] Identification

A version 1 PICT file has (hex) bytes 11 01 at offset 522 (or 10 if there is no header), and should end with ff.

A version 2 PICT file has bytes 00 11 02 ff 0c 00 at offset 522 (or 10 if there is no header), and should end with 00 ff.

[edit] Application data

Custom application data can be stored in PICT files by using the "LongComment" opcode. Each comment has an integer that identifies its "kind".

Notable comment kinds:

  • 100 is an Application Comment (see below).
  • 220 is used for ICC profile data.
  • 498 appears to be related to Photoshop, though it might also be used for other things.

The "kind" does little to identify the application, or prevent collisions. A better way is to use kind 100, which has a standard way to include a 4-byte application signature.

[edit] Related formats

[edit] Specifications

[edit] Software

[edit] Vector-based software

(software that can process PICT vectors as vectors)

[edit] Other software

[edit] Converting

[edit] Converting from PICT

An image can be converted from a PICT using ImageMagick:

  convert image.pict image.png

This example shows a PNG image as the destination image, but ImageMagick supports many other output formats.

[edit] Converting to PICT

An image can be converted to a PICT using ImageMagick:

  convert image.png image.pict

This example shows a PNG image as the source image, but ImageMagick supports many other input formats.

[edit] Using converted images on a classic Mac system

Once converted, the image can then be added to a HFS disk image using hfsutils:

  hmount disk.img                      # mount the HFS disk
  hcopy ./image.pict :image.pic        # copy the PICT image to the disk
  hattrib -t PICT -c 8BIM :image.pic   # set the type and creator codes to ensure that the image is recognised by Mac OS
  humount                              # unmount the disk

[edit] Sample files

[edit] Resources

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox