images revision 159764
1 2#------------------------------------------------------------------------------ 3# images: file(1) magic for image formats (see also "iff") 4# 5# originally from jef@helios.ee.lbl.gov (Jef Poskanzer), 6# additions by janl@ifi.uio.no as well as others. Jan also suggested 7# merging several one- and two-line files into here. 8# 9# little magic: PCX (first byte is 0x0a) 10 11# Targa - matches `povray', `ppmtotga' and `xv' outputs 12# by Philippe De Muyter <phdm@macqel.be> 13# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11 14# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise 15# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs 16# `xv' recognizes only a subset of the following (RGB with pixelsize = 24) 17# `tgatoppm' recognizes a superset (Index may be anything) 181 belong&0xfff7ffff 0x01010000 Targa image data - Map 19>2 byte&8 8 - RLE 20>12 leshort >0 %hd x 21>14 leshort >0 %hd 221 belong&0xfff7ffff 0x00020000 Targa image data - RGB 23>2 byte&8 8 - RLE 24>12 leshort >0 %hd x 25>14 leshort >0 %hd 261 belong&0xfff7ffff 0x00030000 Targa image data - Mono 27>2 byte&8 8 - RLE 28>12 leshort >0 %hd x 29>14 leshort >0 %hd 30 31# PBMPLUS images 32# The next byte following the magic is always whitespace. 330 string P1 Netpbm PBM image text 340 string P2 Netpbm PGM image text 350 string P3 Netpbm PPM image text 360 string P4 Netpbm PBM "rawbits" image data 370 string P5 Netpbm PGM "rawbits" image data 380 string P6 Netpbm PPM "rawbits" image data 390 string P7 Netpbm PAM image file 40 41# From: bryanh@giraffe-data.com (Bryan Henderson) 420 string \117\072 Solitaire Image Recorder format 43>4 string \013 MGI Type 11 44>4 string \021 MGI Type 17 450 string .MDA MicroDesign data 46>21 byte 48 version 2 47>21 byte 51 version 3 480 string .MDP MicroDesign page data 49>21 byte 48 version 2 50>21 byte 51 version 3 51 52# NIFF (Navy Interchange File Format, a modification of TIFF) images 530 string IIN1 NIFF image data 54 55# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com) 56# The second word of TIFF files is the TIFF version number, 42, which has 57# never changed. The TIFF specification recommends testing for it. 580 string MM\x00\x2a TIFF image data, big-endian 590 string II\x2a\x00 TIFF image data, little-endian 60 61# PNG [Portable Network Graphics, or "PNG's Not GIF"] images 62# (Greg Roelofs, newt@uchicago.edu) 63# (Albert Cahalan, acahalan@cs.uml.edu) 64# 65# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ... 66# 670 string \x89PNG PNG image data, 68>4 belong !0x0d0a1a0a CORRUPTED, 69>4 belong 0x0d0a1a0a 70>>16 belong x %ld x 71>>20 belong x %ld, 72>>24 byte x %d-bit 73>>25 byte 0 grayscale, 74>>25 byte 2 \b/color RGB, 75>>25 byte 3 colormap, 76>>25 byte 4 gray+alpha, 77>>25 byte 6 \b/color RGBA, 78#>>26 byte 0 deflate/32K, 79>>28 byte 0 non-interlaced 80>>28 byte 1 interlaced 811 string PNG PNG image data, CORRUPTED 82 83# GIF 840 string GIF8 GIF image data 85>4 string 7a \b, version 8%s, 86>4 string 9a \b, version 8%s, 87>6 leshort >0 %hd x 88>8 leshort >0 %hd 89#>10 byte &0x80 color mapped, 90#>10 byte&0x07 =0x00 2 colors 91#>10 byte&0x07 =0x01 4 colors 92#>10 byte&0x07 =0x02 8 colors 93#>10 byte&0x07 =0x03 16 colors 94#>10 byte&0x07 =0x04 32 colors 95#>10 byte&0x07 =0x05 64 colors 96#>10 byte&0x07 =0x06 128 colors 97#>10 byte&0x07 =0x07 256 colors 98 99# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster, 100# 1 plane, no encoding. 1010 string \361\0\100\273 CMU window manager raster image data 102>4 lelong >0 %d x 103>8 lelong >0 %d, 104>12 lelong >0 %d-bit 105 106# Magick Image File Format 1070 string id=ImageMagick MIFF image data 108 109# Artisan 1100 long 1123028772 Artisan image data 111>4 long 1 \b, rectangular 24-bit 112>4 long 2 \b, rectangular 8-bit with colormap 113>4 long 3 \b, rectangular 32-bit (24-bit with matte) 114 115# FIG (Facility for Interactive Generation of figures), an object-based format 1160 string #FIG FIG image text 117>5 string x \b, version %.3s 118 119# PHIGS 1200 string ARF_BEGARF PHIGS clear text archive 1210 string @(#)SunPHIGS SunPHIGS 122# version number follows, in the form m.n 123>40 string SunBin binary 124>32 string archive archive 125 126# GKS (Graphics Kernel System) 1270 string GKSM GKS Metafile 128>24 string SunGKS \b, SunGKS 129 130# CGM image files 1310 string BEGMF clear text Computer Graphics Metafile 132# XXX - questionable magic 1330 beshort&0xffe0 0x0020 binary Computer Graphics Metafile 1340 beshort 0x3020 character Computer Graphics Metafile 135 136# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de) 1370 string yz MGR bitmap, modern format, 8-bit aligned 1380 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned 1390 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned 1400 string yx MGR bitmap, modern format, squeezed 141 142# Fuzzy Bitmap (FBM) images 1430 string %bitmap\0 FBM image data 144>30 long 0x31 \b, mono 145>30 long 0x33 \b, color 146 147# facsimile data 1481 string PC\ Research,\ Inc group 3 fax data 149>29 byte 0 \b, normal resolution (204x98 DPI) 150>29 byte 1 \b, fine resolution (204x196 DPI) 151# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at> 1520 string Sfff structured fax file 153 154 155# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu) 1560 string BM PC bitmap data 157>14 leshort 12 \b, OS/2 1.x format 158>>18 leshort x \b, %d x 159>>20 leshort x %d 160>14 leshort 64 \b, OS/2 2.x format 161>>18 leshort x \b, %d x 162>>20 leshort x %d 163>14 leshort 40 \b, Windows 3.x format 164>>18 lelong x \b, %d x 165>>22 lelong x %d x 166>>28 leshort x %d 167# Too simple - MPi 168#0 string IC PC icon data 169#0 string PI PC pointer image data 170#0 string CI PC color icon data 171#0 string CP PC color pointer image data 172# Conflicts with other entries [BABYL] 173#0 string BA PC bitmap array data 174 175# XPM icons (Greg Roelofs, newt@uchicago.edu) 176# note possible collision with C/REXX entry in c-lang; currently commented out 1770 string /*\ XPM\ */ X pixmap image text 178 179# Utah Raster Toolkit RLE images (janl@ifi.uio.no) 1800 leshort 0xcc52 RLE image data, 181>6 leshort x %d x 182>8 leshort x %d 183>2 leshort >0 \b, lower left corner: %d 184>4 leshort >0 \b, lower right corner: %d 185>10 byte&0x1 =0x1 \b, clear first 186>10 byte&0x2 =0x2 \b, no background 187>10 byte&0x4 =0x4 \b, alpha channel 188>10 byte&0x8 =0x8 \b, comment 189>11 byte >0 \b, %d color channels 190>12 byte >0 \b, %d bits per pixel 191>13 byte >0 \b, %d color map channels 192 193# image file format (Robert Potter, potter@cs.rochester.edu) 1940 string Imagefile\ version- iff image data 195# this adds the whole header (inc. version number), informative but longish 196>10 string >\0 %s 197 198# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com) 1990 belong 0x59a66a95 Sun raster image data 200>4 belong >0 \b, %d x 201>8 belong >0 %d, 202>12 belong >0 %d-bit, 203#>16 belong >0 %d bytes long, 204>20 belong 0 old format, 205#>20 belong 1 standard, 206>20 belong 2 compressed, 207>20 belong 3 RGB, 208>20 belong 4 TIFF, 209>20 belong 5 IFF, 210>20 belong 0xffff reserved for testing, 211>24 belong 0 no colormap 212>24 belong 1 RGB colormap 213>24 belong 2 raw colormap 214#>28 belong >0 colormap is %d bytes long 215 216# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com) 217# 218# See 219# http://reality.sgi.com/grafica/sgiimage.html 220# 2210 beshort 474 SGI image data 222#>2 byte 0 \b, verbatim 223>2 byte 1 \b, RLE 224#>3 byte 1 \b, normal precision 225>3 byte 2 \b, high precision 226>4 beshort x \b, %d-D 227>6 beshort x \b, %d x 228>8 beshort x %d 229>10 beshort x \b, %d channel 230>10 beshort !1 \bs 231>80 string >0 \b, "%s" 232 2330 string IT01 FIT image data 234>4 belong x \b, %d x 235>8 belong x %d x 236>12 belong x %d 237# 2380 string IT02 FIT image data 239>4 belong x \b, %d x 240>8 belong x %d x 241>12 belong x %d 242# 2432048 string PCD_IPI Kodak Photo CD image pack file 244>0xe02 byte&0x03 0x00 , landscape mode 245>0xe02 byte&0x03 0x01 , portrait mode 246>0xe02 byte&0x03 0x02 , landscape mode 247>0xe02 byte&0x03 0x03 , portrait mode 2480 string PCD_OPA Kodak Photo CD overview pack file 249 250# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu> 251# FITS is the Flexible Image Transport System, the de facto standard for 252# data and image transfer, storage, etc., for the astronomical community. 253# (FITS floating point formats are big-endian.) 2540 string SIMPLE\ \ = FITS image data 255>109 string 8 \b, 8-bit, character or unsigned binary integer 256>108 string 16 \b, 16-bit, two's complement binary integer 257>107 string \ 32 \b, 32-bit, two's complement binary integer 258>107 string -32 \b, 32-bit, floating point, single precision 259>107 string -64 \b, 64-bit, floating point, double precision 260 261# other images 2620 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file 2630 string =!! Bennet Yee's "face" format 264 265# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image 266# stuff. 267# 2680 beshort 0x1010 PEX Binary Archive 269 270# Visio drawings 27103000 string Visio\ (TM)\ Drawing %s 272 273# Tgif files 2740 string \%TGIF\ x Tgif file version %s 275 276# DICOM medical imaging data 277128 string DICM DICOM medical imaging data 278 279# XWD - X Window Dump file. 280# As described in /usr/X11R6/include/X11/XWDFile.h 281# used by the xwd program. 282# Bradford Castalia, idaeim, 1/01 2834 belong 7 XWD X Window Dump image data 284>100 string >\0 \b, "%s" 285>16 belong x \b, %dx 286>20 belong x \b%dx 287>12 belong x \b%d 288 289# PDS - Planetary Data System 290# These files use Parameter Value Language in the header section. 291# Unfortunately, there is no certain magic, but the following 292# strings have been found to be most likely. 2930 string NJPL1I00 PDS (JPL) image data 2942 string NJPL1I PDS (JPL) image data 2950 string CCSD3ZF PDS (CCSD) image data 2962 string CCSD3Z PDS (CCSD) image data 2970 string PDS_ PDS image data 2980 string LBLSIZE= PDS (VICAR) image data 299 300# pM8x: ATARI STAD compressed bitmap format 301# 302# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001 303# p M 8 5/6 xx yy zz data... 304# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed. 305# bytes either run horizontally (pM85) or vertically (pM86). yy is the 306# most frequent byte, xx and zz are runlength escape codes, where xx is 307# used for runs of yy. 308# 3090 string pM85 Atari ST STAD bitmap image data (hor) 310>5 byte 0x00 (white background) 311>5 byte 0xFF (black background) 3120 string pM86 Atari ST STAD bitmap image data (vert) 313>5 byte 0x00 (white background) 314>5 byte 0xFF (black background) 315 316# XXX: 317# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other 318# magic. 319# SGI RICE image file <mpruett@sgi.com> 320#0 beshort 0x5249 RICE image 321#>2 beshort x v%d 322#>4 beshort x (%d x 323#>6 beshort x %d) 324#>8 beshort 0 8 bit 325#>8 beshort 1 10 bit 326#>8 beshort 2 12 bit 327#>8 beshort 3 13 bit 328#>10 beshort 0 4:2:2 329#>10 beshort 1 4:2:2:4 330#>10 beshort 2 4:4:4 331#>10 beshort 3 4:4:4:4 332#>12 beshort 1 RGB 333#>12 beshort 2 CCIR601 334#>12 beshort 3 RP175 335#>12 beshort 4 YUV 336 337#------------------------------------------------------------------------------ 338# 339# Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image file format 340# for the EPOC operating system, which is used with PDAs like those from Psion 341# 342# see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description 343# of various EPOC file formats 344 3450 string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file 346 347# PCX image files 348# From: Dan Fandrich <dan@coneharvesters.com> 3490 beshort 0x0a00 PCX ver. 2.5 image data 3500 beshort 0x0a02 PCX ver. 2.8 image data, with palette 3510 beshort 0x0a03 PCX ver. 2.8 image data, without palette 3520 beshort 0x0a04 PCX for Windows image data 3530 beshort 0x0a05 PCX ver. 3.0 image data 354>4 leshort x bounding box [%hd, 355>6 leshort x %hd] - 356>8 leshort x [%hd, 357>10 leshort x %hd], 358>65 byte >1 %d planes each of 359>3 byte x %hhd-bit 360>68 byte 0 image, 361>68 byte 1 colour, 362>68 byte 2 grayscale, 363>68 byte >2 image, 364>68 byte <0 image, 365>12 leshort >0 %hd x 366>>14 leshort x %hd dpi, 367>2 byte 0 uncompressed 368>2 byte 1 RLE compressed 369 370# Adobe Photoshop 3710 string 8BPS Adobe Photoshop Image 372 373# XV thumbnail indicator (ThMO) 3740 string P7\ 332 XV thumbnail image data 375 376# NITF is defined by United States MIL-STD-2500A 3770 string NITF National Imagery Transmission Format 378>25 string >\0 dated %.14s 379 380# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff) 3810 belong 0x00010008 GEM Image data 382>12 beshort x %d x 383>14 beshort x %d, 384>4 beshort x %d planes, 385>8 beshort x %d x 386>10 beshort x %d pixelsize 387 388# GEM Metafile (Wolfram Kleff) 3890 lelong 0x0018FFFF GEM Metafile data 390>4 leshort x version %d 391 392# 393# SMJPEG. A custom Motion JPEG format used by Loki Entertainment 394# Software Torbjorn Andersson <d91tan@Update.UU.SE>. 395# 3960 string \0\nSMJPEG SMJPEG 397>8 belong x %d.x data 398# According to the specification you could find any number of _TXT 399# headers here, but I can't think of any way of handling that. None of 400# the SMJPEG files I tried it on used this feature. Even if such a 401# file is encountered the output should still be reasonable. 402>16 string _SND \b, 403>>24 beshort >0 %d Hz 404>>26 byte 8 8-bit 405>>26 byte 16 16-bit 406>>28 string NONE uncompressed 407# >>28 string APCM ADPCM compressed 408>>27 byte 1 mono 409>>28 byte 2 stereo 410# Help! Isn't there any way to avoid writing this part twice? 411>>32 string _VID \b, 412# >>>48 string JFIF JPEG 413>>>40 belong >0 %d frames 414>>>44 beshort >0 (%d x 415>>>46 beshort >0 %d) 416>16 string _VID \b, 417# >>32 string JFIF JPEG 418>>24 belong >0 %d frames 419>>28 beshort >0 (%d x 420>>30 beshort >0 %d) 421 4220 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File 423 424# "thumbnail file" (icon) 425# descended from "xv", but in use by other applications as well (Wolfram Kleff) 4260 string P7\ 332 XV "thumbnail file" (icon) data 427 428# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?) 4290 string KiSS KISS/GS 430>4 byte 16 color 431>>5 byte x %d bit 432>>8 leshort x %d colors 433>>10 leshort x %d groups 434>4 byte 32 cell 435>>5 byte x %d bit 436>>8 leshort x %d x 437>>10 leshort x %d 438>>12 leshort x +%d 439>>14 leshort x +%d 440 441# Webshots (www.webshots.com), by John Harrison 4420 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file 443 444# Hercules DASD image files 445# From Jan Jaeger <jj@septa.nl> 4460 string CKD_P370 Hercules CKD DASD image file 447>8 long x \b, %d heads per cylinder 448>12 long x \b, track size %d bytes 449>16 byte x \b, device type 33%2.2X 450 4510 string CKD_C370 Hercules compressed CKD DASD image file 452>8 long x \b, %d heads per cylinder 453>12 long x \b, track size %d bytes 454>16 byte x \b, device type 33%2.2X 455 4560 string CKD_S370 Hercules CKD DASD shadow file 457>8 long x \b, %d heads per cylinder 458>12 long x \b, track size %d bytes 459>16 byte x \b, device type 33%2.2X 460 461# Squeak images and - etoffi@softhome.net 4620 string \146\031\0\0 Squeak image data 4630 string 'From\040Squeak Squeak program text 464 465# partimage: file(1) magic for PartImage files (experimental, incomplete) 466# Author: Hans-Joachim Baader <hjb@pro-linux.de> 4670 string PaRtImAgE-VoLuMe PartImage 468>0x0020 string 0.6.1 file version %s 469>>0x0060 lelong >-1 volume %ld 470#>>0x0064 8 byte identifier 471#>>0x007c reserved 472>>0x0200 string >\0 type %s 473>>0x1400 string >\0 device %s, 474>>0x1600 string >\0 original filename %s, 475# Some fields omitted 476>>0x2744 lelong 0 not compressed 477>>0x2744 lelong 1 gzip compressed 478>>0x2744 lelong 2 bzip2 compressed 479>>0x2744 lelong >2 compressed with unknown algorithm 480>0x0020 string >0.6.1 file version %s 481>0x0020 string <0.6.1 file version %s 482 483# DCX is multi-page PCX, using a simple header of up to 1024 484# offsets for the respective PCX components. 485# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> 4860 lelong 987654321 DCX multi-page PCX image data 487 488# Simon Walton <simonw@matteworld.com> 489# Kodak Cineon format for scanned negatives 490# http://www.kodak.com/US/en/motion/support/dlad/ 4910 lelong 0xd75f2a80 Cineon image data 492>200 belong >0 \b, %ld x 493>204 belong >0 %ld 494 495 496# Bio-Rad .PIC is an image format used by microscope control systems 497# and related image processing software used by biologists. 498# From: Vebjorn Ljosa <vebjorn@ljosa.com> 49954 leshort 12345 Bio-Rad .PIC Image File 500>0 leshort >0 %hd x 501>2 leshort >0 %hd, 502>4 leshort =1 1 image in file 503>4 leshort >1 %hd images in file 504 505# From Jan "Yenya" Kasprzak <kas@fi.muni.cz> 506# The description of *.mrw format can be found at 507# http://www.dalibor.cz/minolta/raw_file_format.htm 5080 string \000MRM Minolta Dimage camera raw image data 509 510# From: stephane.loeuillet@tiscali.f 511# http://www.djvuzone.org/ 5120 string AT&TFORM DjVu Image file 513 514# From: Jason Bacon <bacon@smithers.neuro.mcw.edu> 5150 beshort 0x3020 character Computer Graphics Metafile 516 517# From Marc Espie 5180 lelong 20000630 OpenEXR image data 519 520# From: Tom Hilinski <tom.hilinski@comcast.net> 521# http://www.unidata.ucar.edu/packages/netcdf/ 5220 string CDF\001 NetCDF Data Format data 523 524#----------------------------------------------------------------------- 525# Hierarchical Data Format, used to facilitate scientific data exchange 526# specifications at http://hdf.ncsa.uiuc.edu/ 5270 belong 0x0e031301 Hierarchical Data Format (version 4) data 5280 string \211HDF\r\n\032 Hierarchical Data Format (version 5) data 529