1# $OpenBSD: images,v 1.10 2009/04/24 18:54:34 chl Exp $ 2 3#------------------------------------------------------------------------------ 4# images: file(1) magic for image formats (see also "iff", and "c-lang" for 5# XPM bitmaps) 6# 7# originally from jef@helios.ee.lbl.gov (Jef Poskanzer), 8# additions by janl@ifi.uio.no as well as others. Jan also suggested 9# merging several one- and two-line files into here. 10# 11# little magic: PCX (first byte is 0x0a) 12 13# Targa - matches `povray', `ppmtotga' and `xv' outputs 14# by Philippe De Muyter <phdm@macqel.be> 15# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11 16# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise 17# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs 18# `xv' recognizes only a subset of the following (RGB with pixelsize = 24) 19# `tgatoppm' recognizes a superset (Index may be anything) 201 belong&0xfff7ffff 0x01010000 Targa image data - Map 21>2 byte&8 8 - RLE 22>12 leshort >0 %hd x 23>14 leshort >0 %hd 241 belong&0xfff7ffff 0x00020000 Targa image data - RGB 25>2 byte&8 8 - RLE 26>12 leshort >0 %hd x 27>14 leshort >0 %hd 281 belong&0xfff7ffff 0x00030000 Targa image data - Mono 29>2 byte&8 8 - RLE 30>12 leshort >0 %hd x 31>14 leshort >0 %hd 32 33# PBMPLUS images 34# The next byte following the magic is always whitespace. 350 search/1 P1 Netpbm PBM image text 36!:mime image/x-portable-bitmap 370 search/1 P2 Netpbm PGM image text 38!:mime image/x-portable-greymap 390 search/1 P3 Netpbm PPM image text 40!:mime image/x-portable-pixmap 410 string P4 Netpbm PBM "rawbits" image data 42!:mime image/x-portable-bitmap 430 string P5 Netpbm PGM "rawbits" image data 44!:mime image/x-portable-greymap 450 string P6 Netpbm PPM "rawbits" image data 46!:mime image/x-portable-pixmap 470 string P7 Netpbm PAM image file 48!:mime image/x-portable-pixmap 49 50# From: bryanh@giraffe-data.com (Bryan Henderson) 510 string \117\072 Solitaire Image Recorder format 52>4 string \013 MGI Type 11 53>4 string \021 MGI Type 17 540 string .MDA MicroDesign data 55>21 byte 48 version 2 56>21 byte 51 version 3 570 string .MDP MicroDesign page data 58>21 byte 48 version 2 59>21 byte 51 version 3 60 61# NIFF (Navy Interchange File Format, a modification of TIFF) images 62# [GRR: this *must* go before TIFF] 630 string IIN1 NIFF image data 64!:mime image/x-niff 65 66# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com) 67# The second word of TIFF files is the TIFF version number, 42, which has 68# never changed. The TIFF specification recommends testing for it. 690 string MM\x00\x2a TIFF image data, big-endian 70!:mime image/tiff 710 string II\x2a\x00 TIFF image data, little-endian 72!:mime image/tiff 73 74# PNG [Portable Network Graphics, or "PNG's Not GIF"] images 75# (Greg Roelofs, newt@uchicago.edu) 76# (Albert Cahalan, acahalan@cs.uml.edu) 77# 78# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ... 79# 800 string \x89PNG PNG image data, 81!:mime image/png 82>4 belong !0x0d0a1a0a CORRUPTED, 83>4 belong 0x0d0a1a0a 84>>16 belong x %ld x 85>>20 belong x %ld, 86>>24 byte x %d-bit 87>>25 byte 0 grayscale, 88>>25 byte 2 \b/color RGB, 89>>25 byte 3 colormap, 90>>25 byte 4 gray+alpha, 91>>25 byte 6 \b/color RGBA, 92#>>26 byte 0 deflate/32K, 93>>28 byte 0 non-interlaced 94>>28 byte 1 interlaced 951 string PNG PNG image data, CORRUPTED 96 97# possible GIF replacements; none yet released! 98# (Greg Roelofs, newt@uchicago.edu) 99# 100# GRR 950115: this was mine ("Zip GIF"): 1010 string GIF94z ZIF image (GIF+deflate alpha) 102!:mime image/x-unknown 103# 104# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better): 105# 1060 string FGF95a FGF image (GIF+deflate beta) 107!:mime image/x-unknown 108# 109# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal 110# (best; not yet implemented): 111# 1120 string PBF PBF image (deflate compression) 113!:mime image/x-unknown 114 115# GIF 1160 string GIF8 GIF image data 117!:mime image/gif 118>4 string 7a \b, version 8%s, 119>4 string 9a \b, version 8%s, 120>6 leshort >0 %hd x 121>8 leshort >0 %hd 122#>10 byte &0x80 color mapped, 123#>10 byte&0x07 =0x00 2 colors 124#>10 byte&0x07 =0x01 4 colors 125#>10 byte&0x07 =0x02 8 colors 126#>10 byte&0x07 =0x03 16 colors 127#>10 byte&0x07 =0x04 32 colors 128#>10 byte&0x07 =0x05 64 colors 129#>10 byte&0x07 =0x06 128 colors 130#>10 byte&0x07 =0x07 256 colors 131 132# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster, 133# 1 plane, no encoding. 1340 string \361\0\100\273 CMU window manager raster image data 135>4 lelong >0 %d x 136>8 lelong >0 %d, 137>12 lelong >0 %d-bit 138 139# Magick Image File Format 1400 string id=ImageMagick MIFF image data 141 142# Artisan 1430 long 1123028772 Artisan image data 144>4 long 1 \b, rectangular 24-bit 145>4 long 2 \b, rectangular 8-bit with colormap 146>4 long 3 \b, rectangular 32-bit (24-bit with matte) 147 148# FIG (Facility for Interactive Generation of figures), an object-based format 1490 search/1 #FIG FIG image text 150>5 string x \b, version %.3s 151 152# PHIGS 1530 string ARF_BEGARF PHIGS clear text archive 1540 string @(#)SunPHIGS SunPHIGS 155# version number follows, in the form m.n 156>40 string SunBin binary 157>32 string archive archive 158 159# GKS (Graphics Kernel System) 1600 string GKSM GKS Metafile 161>24 string SunGKS \b, SunGKS 162 163# CGM image files 1640 string BEGMF clear text Computer Graphics Metafile 165# XXX - questionable magic 166#0 beshort&0xffe0 0x0020 binary Computer Graphics Metafile 167#0 beshort 0x3020 character Computer Graphics Metafile 168 169# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de) 1700 string yz MGR bitmap, modern format, 8-bit aligned 1710 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned 1720 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned 1730 string yx MGR bitmap, modern format, squeezed 174 175# Fuzzy Bitmap (FBM) images 1760 string %bitmap\0 FBM image data 177>30 long 0x31 \b, mono 178>30 long 0x33 \b, color 179 180# facsimile data 1811 string PC\ Research,\ Inc group 3 fax data 182>29 byte 0 \b, normal resolution (204x98 DPI) 183>29 byte 1 \b, fine resolution (204x196 DPI) 184# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at> 1850 string Sfff structured fax file 186 187 188# PC bitmaps (OS/2, Windows BMP files) (Greg Roelofs, newt@uchicago.edu) 1890 string BM PC bitmap data 190!:mime image/x-ms-bmp 191>14 leshort 12 \b, OS/2 1.x format 192>>18 leshort x \b, %d x 193>>20 leshort x %d 194>14 leshort 64 \b, OS/2 2.x format 195>>18 leshort x \b, %d x 196>>20 leshort x %d 197>14 leshort 40 \b, Windows 3.x format 198>>18 lelong x \b, %d x 199>>22 lelong x %d x 200>>28 leshort x %d 201# Too simple - MPi 202#0 string IC PC icon data 203#0 string PI PC pointer image data 204#0 string CI PC color icon data 205#0 string CP PC color pointer image data 206# Conflicts with other entries [BABYL] 207#0 string BA PC bitmap array data 208 209# XPM icons (Greg Roelofs, newt@uchicago.edu) 210# note possible collision with C/REXX entry in c-lang; currently commented out 2110 search/1 /*\ XPM\ */ X pixmap image text 212 213# Utah Raster Toolkit RLE images (janl@ifi.uio.no) 2140 leshort 0xcc52 RLE image data, 215>6 leshort x %d x 216>8 leshort x %d 217>2 leshort >0 \b, lower left corner: %d 218>4 leshort >0 \b, lower right corner: %d 219>10 byte&0x1 =0x1 \b, clear first 220>10 byte&0x2 =0x2 \b, no background 221>10 byte&0x4 =0x4 \b, alpha channel 222>10 byte&0x8 =0x8 \b, comment 223>11 byte >0 \b, %d color channels 224>12 byte >0 \b, %d bits per pixel 225>13 byte >0 \b, %d color map channels 226 227# image file format (Robert Potter, potter@cs.rochester.edu) 2280 string Imagefile\ version- iff image data 229# this adds the whole header (inc. version number), informative but longish 230>10 string >\0 %s 231 232# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com) 2330 belong 0x59a66a95 Sun raster image data 234>4 belong >0 \b, %d x 235>8 belong >0 %d, 236>12 belong >0 %d-bit, 237#>16 belong >0 %d bytes long, 238>20 belong 0 old format, 239#>20 belong 1 standard, 240>20 belong 2 compressed, 241>20 belong 3 RGB, 242>20 belong 4 TIFF, 243>20 belong 5 IFF, 244>20 belong 0xffff reserved for testing, 245>24 belong 0 no colormap 246>24 belong 1 RGB colormap 247>24 belong 2 raw colormap 248#>28 belong >0 colormap is %d bytes long 249 250# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com) 251# 252# See 253# http://reality.sgi.com/grafica/sgiimage.html 254# 2550 beshort 474 SGI image data 256#>2 byte 0 \b, verbatim 257>2 byte 1 \b, RLE 258#>3 byte 1 \b, normal precision 259>3 byte 2 \b, high precision 260>4 beshort x \b, %d-D 261>6 beshort x \b, %d x 262>8 beshort x %d 263>10 beshort x \b, %d channel 264>10 beshort !1 \bs 265>80 string >0 \b, "%s" 266 2670 string IT01 FIT image data 268>4 belong x \b, %d x 269>8 belong x %d x 270>12 belong x %d 271# 2720 string IT02 FIT image data 273>4 belong x \b, %d x 274>8 belong x %d x 275>12 belong x %d 276# 2772048 string PCD_IPI Kodak Photo CD image pack file 278>0xe02 byte&0x03 0x00 , landscape mode 279>0xe02 byte&0x03 0x01 , portrait mode 280>0xe02 byte&0x03 0x02 , landscape mode 281>0xe02 byte&0x03 0x03 , portrait mode 2820 string PCD_OPA Kodak Photo CD overview pack file 283 284# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu> 285# FITS is the Flexible Image Transport System, the de facto standard for 286# data and image transfer, storage, etc., for the astronomical community. 287# (FITS floating point formats are big-endian.) 2880 string SIMPLE\ \ = FITS image data 289>109 string 8 \b, 8-bit, character or unsigned binary integer 290>108 string 16 \b, 16-bit, two's complement binary integer 291>107 string \ 32 \b, 32-bit, two's complement binary integer 292>107 string -32 \b, 32-bit, floating point, single precision 293>107 string -64 \b, 64-bit, floating point, double precision 294 295# other images 2960 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file 297#0 string =!! Bennet Yee's "face" format 298 299# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image 300# stuff. 301# 3020 beshort 0x1010 PEX Binary Archive 303 304# DICOM medical imaging data 305128 string DICM DICOM medical imaging data 306!:mime application/dicom 307 308# XWD - X Window Dump file. 309# As described in /usr/X11R6/include/X11/XWDFile.h 310# used by the xwd program. 311# Bradford Castalia, idaeim, 1/01 3124 belong 7 XWD X Window Dump image data 313>100 string >\0 \b, "%s" 314>16 belong x \b, %dx 315>20 belong x \b%dx 316>12 belong x \b%d 317 318# PDS - Planetary Data System 319# These files use Parameter Value Language in the header section. 320# Unfortunately, there is no certain magic, but the following 321# strings have been found to be most likely. 3220 string NJPL1I00 PDS (JPL) image data 3232 string NJPL1I PDS (JPL) image data 3240 string CCSD3ZF PDS (CCSD) image data 3252 string CCSD3Z PDS (CCSD) image data 3260 string PDS_ PDS image data 3270 string LBLSIZE= PDS (VICAR) image data 328 329# pM8x: ATARI STAD compressed bitmap format 330# 331# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001 332# p M 8 5/6 xx yy zz data... 333# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed. 334# bytes either run horizontally (pM85) or vertically (pM86). yy is the 335# most frequent byte, xx and zz are runlength escape codes, where xx is 336# used for runs of yy. 337# 3380 string pM85 Atari ST STAD bitmap image data (hor) 339>5 byte 0x00 (white background) 340>5 byte 0xFF (black background) 3410 string pM86 Atari ST STAD bitmap image data (vert) 342>5 byte 0x00 (white background) 343>5 byte 0xFF (black background) 344 345# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu 346# http://www.atarimax.com/jindroush.atari.org/afmtatr.html 3470 leshort 0x0296 Atari ATR image 348 349# XXX: 350# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other 351# magic. 352# SGI RICE image file <mpruett@sgi.com> 353#0 beshort 0x5249 RICE image 354#>2 beshort x v%d 355#>4 beshort x (%d x 356#>6 beshort x %d) 357#>8 beshort 0 8 bit 358#>8 beshort 1 10 bit 359#>8 beshort 2 12 bit 360#>8 beshort 3 13 bit 361#>10 beshort 0 4:2:2 362#>10 beshort 1 4:2:2:4 363#>10 beshort 2 4:4:4 364#>10 beshort 3 4:4:4:4 365#>12 beshort 1 RGB 366#>12 beshort 2 CCIR601 367#>12 beshort 3 RP175 368#>12 beshort 4 YUV 369 370#------------------------------------------------------------------------------ 371# 372# Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image file format 373# for the EPOC operating system, which is used with PDAs like those from Psion 374# 375# see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description 376# of various EPOC file formats 377 3780 string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file 379 380# PCX image files 381# From: Dan Fandrich <dan@coneharvesters.com> 3820 beshort 0x0a00 PCX ver. 2.5 image data 3830 beshort 0x0a02 PCX ver. 2.8 image data, with palette 3840 beshort 0x0a03 PCX ver. 2.8 image data, without palette 3850 beshort 0x0a04 PCX for Windows image data 3860 beshort 0x0a05 PCX ver. 3.0 image data 387>4 leshort x bounding box [%hd, 388>6 leshort x %hd] - 389>8 leshort x [%hd, 390>10 leshort x %hd], 391>65 byte >1 %d planes each of 392>3 byte x %hhd-bit 393>68 byte 0 image, 394>68 byte 1 colour, 395>68 byte 2 grayscale, 396>68 byte >2 image, 397>68 byte <0 image, 398>12 leshort >0 %hd x 399>>14 leshort x %hd dpi, 400>2 byte 0 uncompressed 401>2 byte 1 RLE compressed 402 403# Adobe Photoshop 4040 string 8BPS Adobe Photoshop Image 405!:mime image/vnd.adobe.photoshop 406 407# XV thumbnail indicator (ThMO) 4080 string P7\ 332 XV thumbnail image data 409 410# NITF is defined by United States MIL-STD-2500A 4110 string NITF National Imagery Transmission Format 412>25 string >\0 dated %.14s 413 414# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff) 4150 belong 0x00010008 GEM Image data 416>12 beshort x %d x 417>14 beshort x %d, 418>4 beshort x %d planes, 419>8 beshort x %d x 420>10 beshort x %d pixelsize 421 422# GEM Metafile (Wolfram Kleff) 4230 lelong 0x0018FFFF GEM Metafile data 424>4 leshort x version %d 425 426# 427# SMJPEG. A custom Motion JPEG format used by Loki Entertainment 428# Software Torbjorn Andersson <d91tan@Update.UU.SE>. 429# 4300 string \0\nSMJPEG SMJPEG 431>8 belong x %d.x data 432# According to the specification you could find any number of _TXT 433# headers here, but I can't think of any way of handling that. None of 434# the SMJPEG files I tried it on used this feature. Even if such a 435# file is encountered the output should still be reasonable. 436>16 string _SND \b, 437>>24 beshort >0 %d Hz 438>>26 byte 8 8-bit 439>>26 byte 16 16-bit 440>>28 string NONE uncompressed 441# >>28 string APCM ADPCM compressed 442>>27 byte 1 mono 443>>28 byte 2 stereo 444# Help! Isn't there any way to avoid writing this part twice? 445>>32 string _VID \b, 446# >>>48 string JFIF JPEG 447>>>40 belong >0 %d frames 448>>>44 beshort >0 (%d x 449>>>46 beshort >0 %d) 450>16 string _VID \b, 451# >>32 string JFIF JPEG 452>>24 belong >0 %d frames 453>>28 beshort >0 (%d x 454>>30 beshort >0 %d) 455 4560 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File 457 458# "thumbnail file" (icon) 459# descended from "xv", but in use by other applications as well (Wolfram Kleff) 4600 string P7\ 332 XV "thumbnail file" (icon) data 461 462# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?) 4630 string KiSS KISS/GS 464>4 byte 16 color 465>>5 byte x %d bit 466>>8 leshort x %d colors 467>>10 leshort x %d groups 468>4 byte 32 cell 469>>5 byte x %d bit 470>>8 leshort x %d x 471>>10 leshort x %d 472>>12 leshort x +%d 473>>14 leshort x +%d 474 475# Webshots (www.webshots.com), by John Harrison 4760 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file 477 478# Hercules DASD image files 479# From Jan Jaeger <jj@septa.nl> 4800 string CKD_P370 Hercules CKD DASD image file 481>8 long x \b, %d heads per cylinder 482>12 long x \b, track size %d bytes 483>16 byte x \b, device type 33%2.2X 484 4850 string CKD_C370 Hercules compressed CKD DASD image file 486>8 long x \b, %d heads per cylinder 487>12 long x \b, track size %d bytes 488>16 byte x \b, device type 33%2.2X 489 4900 string CKD_S370 Hercules CKD DASD shadow file 491>8 long x \b, %d heads per cylinder 492>12 long x \b, track size %d bytes 493>16 byte x \b, device type 33%2.2X 494 495# Squeak images and programs - etoffi@softhome.net 4960 string \146\031\0\0 Squeak image data 4970 search/1 'From\040Squeak Squeak program text 498 499# partimage: file(1) magic for PartImage files (experimental, incomplete) 500# Author: Hans-Joachim Baader <hjb@pro-linux.de> 5010 string PaRtImAgE-VoLuMe PartImage 502>0x0020 string 0.6.1 file version %s 503>>0x0060 lelong >-1 volume %ld 504#>>0x0064 8 byte identifier 505#>>0x007c reserved 506>>0x0200 string >\0 type %s 507>>0x1400 string >\0 device %s, 508>>0x1600 string >\0 original filename %s, 509# Some fields omitted 510>>0x2744 lelong 0 not compressed 511>>0x2744 lelong 1 gzip compressed 512>>0x2744 lelong 2 bzip2 compressed 513>>0x2744 lelong >2 compressed with unknown algorithm 514>0x0020 string >0.6.1 file version %s 515>0x0020 string <0.6.1 file version %s 516 517# DCX is multi-page PCX, using a simple header of up to 1024 518# offsets for the respective PCX components. 519# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> 5200 lelong 987654321 DCX multi-page PCX image data 521 522# Simon Walton <simonw@matteworld.com> 523# Kodak Cineon format for scanned negatives 524# http://www.kodak.com/US/en/motion/support/dlad/ 5250 lelong 0xd75f2a80 Cineon image data 526>200 belong >0 \b, %ld x 527>204 belong >0 %ld 528 529 530# Bio-Rad .PIC is an image format used by microscope control systems 531# and related image processing software used by biologists. 532# From: Vebjorn Ljosa <vebjorn@ljosa.com> 53354 leshort 12345 Bio-Rad .PIC Image File 534>0 leshort >0 %hd x 535>2 leshort >0 %hd, 536>4 leshort =1 1 image in file 537>4 leshort >1 %hd images in file 538 539# From Jan "Yenya" Kasprzak <kas@fi.muni.cz> 540# The description of *.mrw format can be found at 541# http://www.dalibor.cz/minolta/raw_file_format.htm 5420 string \000MRM Minolta Dimage camera raw image data 543 544# From: stephane.loeuillet@tiscali.f 545# http://www.djvuzone.org/ 5460 string AT&TFORM DjVu Image file 547!:mime image/vnd.djvu 548 549# From Marc Espie 5500 lelong 20000630 OpenEXR image data 551 552# From: Tom Hilinski <tom.hilinski@comcast.net> 553# http://www.unidata.ucar.edu/packages/netcdf/ 5540 string CDF\001 NetCDF Data Format data 555 556#----------------------------------------------------------------------- 557# Hierarchical Data Format, used to facilitate scientific data exchange 558# specifications at http://hdf.ncsa.uiuc.edu/ 5590 belong 0x0e031301 Hierarchical Data Format (version 4) data 560!:mime application/x-hdf 5610 string \211HDF\r\n\032 Hierarchical Data Format (version 5) data 562!:mime application/x-hdf 563 564# From: Tobias Burnus <burnus@net-b.de> 565# Xara (for a while: Corel Xara) is a graphic package, see 566# http://www.xara.com/ for Windows and as GPL application for Linux 5670 string XARA\243\243 Xara graphics file 568 569# http://www.cartesianinc.com/Tech/ 5700 string CPC\262 Cartesian Perceptual Compression image 571!:mime image/x-cpi 572 573# From Albert Cahalan <acahalan@gmail.com> 574# puredigital used it for the CVS disposable camcorder 575#8 lelong 4 ZBM bitmap image data 576#>4 leshort x %u x 577#>6 leshort x %u 578 579# From Albert Cahalan <acahalan@gmail.com> 580# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons 5810 string C565 OLPC firmware icon image data 582>4 leshort x %u x 583>6 leshort x %u 584 585# Applied Images - Image files from Cytovision 586# Gustavo Junior Alves <gjalves@gjalves.com.br> 5870 string \xce\xda\xde\xfa Cytovision Metaphases file 5880 string \xed\xad\xef\xac Cytovision Karyotype file 5890 string \x0b\x00\x03\x00 Cytovision FISH Probe file 5900 string \xed\xfe\xda\xbe Cytovision FLEX file 5910 string \xed\xab\xed\xfe Cytovision FLEX file 5920 string \xad\xfd\xea\xad Cytovision RATS file 593