1 2#------------------------------------------------------------------------------ 3# $File: images,v 1.102 2015/01/02 02:36:35 christos Exp $ 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!:strength + 2 22>2 byte&8 8 - RLE 23>12 leshort >0 %d x 24>14 leshort >0 %d 251 belong&0xfff7ffff 0x00020000 Targa image data - RGB 26!:strength + 2 27>2 byte&8 8 - RLE 28>12 leshort >0 %d x 29>14 leshort >0 %d 301 belong&0xfff7ffff 0x00030000 Targa image data - Mono 31!:strength + 2 32>2 byte&8 8 - RLE 33>12 leshort >0 %d x 34>14 leshort >0 %d 35 36# PBMPLUS images 37# The next byte following the magic is always whitespace. 38# strength is changed to try these patterns before "x86 boot sector" 390 search/1 P1 40>3 regex =[0-9]{0,50}\ [0-9]{0,50} Netpbm PBM image text 41>3 regex =[0-9]{1,50}\ \b, size = %sx 42>>3 regex =\ [0-9]{1,50} \b%s 43!:strength + 45 44!:mime image/x-portable-bitmap 450 search/1 P2 46>3 regex =[0-9]{0,50}\ [0-9]{0,50} Netpbm PGM image text 47>3 regex =[0-9]{1,50}\ \b, size = %sx 48>>3 regex =\ [0-9]{1,50} \b%s 49!:strength + 45 50!:mime image/x-portable-greymap 510 search/1 P3 52>3 regex =[0-9]{0,50}\ [0-9]{0,50} Netpbm PPM image text 53>3 regex =[0-9]{1,50}\ \b, size = %sx 54>>3 regex =\ [0-9]{1,50} \b%s 55!:strength + 45 56!:mime image/x-portable-pixmap 570 string P4 58>3 regex =[0-9]{0,50}\ [0-9]{0,50} Netpbm PBM "rawbits" image data 59>3 regex =[0-9]{1,50}\ \b, size = %sx 60>>3 regex =\ [0-9]{1,50} \b%s 61!:strength + 45 62!:mime image/x-portable-bitmap 630 string P5 64>3 regex =[0-9]{0,50}\ [0-9]{0,50} Netpbm PGM "rawbits" image data 65>3 regex =[0-9]{1,50}\ \b, size = %sx 66>>3 regex =\ [0-9]{1,50} \b%s 67!:strength + 45 68!:mime image/x-portable-greymap 690 string P6 70>3 regex =[0-9]{0,50}\ [0-9]{0,50} Netpbm PPM "rawbits" image data 71>3 regex =[0-9]{1,50}\ \b, size = %sx 72>>3 regex =\ [0-9]{1,50} \b%s 73!:strength + 45 74!:mime image/x-portable-pixmap 750 string P7 Netpbm PAM image file 76!:mime image/x-portable-pixmap 77 78# From: bryanh@giraffe-data.com (Bryan Henderson) 790 string \117\072 Solitaire Image Recorder format 80>4 string \013 MGI Type 11 81>4 string \021 MGI Type 17 820 string .MDA MicroDesign data 83>21 byte 48 version 2 84>21 byte 51 version 3 850 string .MDP MicroDesign page data 86>21 byte 48 version 2 87>21 byte 51 version 3 88 89# NIFF (Navy Interchange File Format, a modification of TIFF) images 90# [GRR: this *must* go before TIFF] 910 string IIN1 NIFF image data 92!:mime image/x-niff 93 94# Canon RAW version 1 (CRW) files are a type of Canon Image File Format 95# (CIFF) file. These are apparently all little-endian. 96# From: Adam Buchbinder <adam.buchbinder@gmail.com> 97# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html 980 string II\x1a\0\0\0HEAPCCDR Canon CIFF raw image data 99!:mime image/x-canon-crw 100>16 leshort x \b, version %d. 101>14 leshort x \b%d 102 103# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic 104# number. Put this above the TIFF test to make sure we detect them. 105# These are apparently all little-endian. 106# From: Adam Buchbinder <adam.buchbinder@gmail.com> 107# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2 1080 string II\x2a\0\x10\0\0\0CR Canon CR2 raw image data 109!:mime image/x-canon-cr2 110>10 byte x \b, version %d. 111>11 byte x \b%d 112 113# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com) 114# The second word of TIFF files is the TIFF version number, 42, which has 115# never changed. The TIFF specification recommends testing for it. 1160 string MM\x00\x2a TIFF image data, big-endian 117!:mime image/tiff 118>(4.L) use \^tiff_ifd 1190 string II\x2a\x00 TIFF image data, little-endian 120!:mime image/tiff 121>(4.l) use tiff_ifd 122 1230 name tiff_ifd 124>0 leshort x \b, direntries=%d 125>2 use tiff_entry 126 1270 name tiff_entry 128# NewSubFileType 129>0 leshort 0xfe 130>>12 use tiff_entry 131>0 leshort 0x100 132>>4 lelong 1 133>>>12 use tiff_entry 134>>>8 leshort x \b, width=%d 135>0 leshort 0x101 136>>4 lelong 1 137>>>8 leshort x \b, height=%d 138>>>12 use tiff_entry 139>0 leshort 0x102 140>>8 leshort x \b, bps=%d 141>>12 use tiff_entry 142>0 leshort 0x103 143>>4 lelong 1 \b, compression= 144>>>8 leshort 1 \bnone 145>>>8 leshort 2 \bhuffman 146>>>8 leshort 3 \bbi-level group 3 147>>>8 leshort 4 \bbi-level group 4 148>>>8 leshort 5 \bLZW 149>>>8 leshort 6 \bJPEG (old) 150>>>8 leshort 7 \bJPEG 151>>>8 leshort 8 \bdeflate 152>>>8 leshort 9 \bJBIG, ITU-T T.85 153>>>8 leshort 0xa \bJBIG, ITU-T T.43 154>>>8 leshort 0x7ffe \bNeXT RLE 2-bit 155>>>8 leshort 0x8005 \bPackBits (Macintosh RLE) 156>>>8 leshort 0x8029 \bThunderscan RLE 157>>>8 leshort 0x807f \bRasterPadding (CT or MP) 158>>>8 leshort 0x8080 \bRLE (Line Work) 159>>>8 leshort 0x8081 \bRLE (High-Res Cont-Tone) 160>>>8 leshort 0x8082 \bRLE (Binary Line Work) 161>>>8 leshort 0x80b2 \bDeflate (PKZIP) 162>>>8 leshort 0x80b3 \bKodak DCS 163>>>8 leshort 0x8765 \bJBIG 164>>>8 leshort 0x8798 \bJPEG2000 165>>>8 leshort 0x8799 \bNikon NEF Compressed 166>>>8 default x 167>>>>8 leshort x \b(unknown 0x%x) 168>>>12 use tiff_entry 169>0 leshort 0x106 \b, PhotometricIntepretation= 170>>8 leshort 0 \bWhiteIsZero 171>>8 leshort 1 \bBlackIsZero 172>>8 leshort 2 \bRGB 173>>8 leshort 3 \bRGB Palette 174>>8 leshort 4 \bTransparency Mask 175>>8 leshort 5 \bCMYK 176>>8 leshort 6 \bYCbCr 177>>8 leshort 8 \bCIELab 178>>>8 leshort x \b(unknown=0x%x) 179>>12 use tiff_entry 180# FillOrder 181>0 leshort 0x10a 182>>4 lelong 1 183>>>12 use tiff_entry 184# DocumentName 185>0 leshort 0x10d 186>>(8.l) string x \b, name=%s 187>>>12 use tiff_entry 188# ImageDescription 189>0 leshort 0x10e 190>>(8.l) string x \b, description=%s 191>>>12 use tiff_entry 192# Make 193>0 leshort 0x10f 194>>(8.l) string x \b, manufacturer=%s 195>>>12 use tiff_entry 196# Model 197>0 leshort 0x110 198>>(8.l) string x \b, model=%s 199>>>12 use tiff_entry 200# StripOffsets 201>0 leshort 0x111 202>>12 use tiff_entry 203# Orientation 204>0 leshort 0x112 \b, orientation= 205>>8 leshort 1 \bupper-left 206>>8 leshort 3 \blower-right 207>>8 leshort 6 \bupper-right 208>>8 leshort 8 \blower-left 209>>8 leshort 9 \bundefined 210>>8 default x 211>>>8 leshort x \b[*%d*] 212>>12 use tiff_entry 213# XResolution 214>0 leshort 0x11a 215>>8 lelong x \b, xresolution=%d 216>>12 use tiff_entry 217# YResolution 218>0 leshort 0x11b 219>>8 lelong x \b, yresolution=%d 220>>12 use tiff_entry 221# ResolutionUnit 222>0 leshort 0x128 223>>8 leshort x \b, resolutionunit=%d 224>>12 use tiff_entry 225# Software 226>0 leshort 0x131 227>>(8.l) string x \b, software=%s 228>>12 use tiff_entry 229# Datetime 230>0 leshort 0x132 231>>(8.l) string x \b, datetime=%s 232>>12 use tiff_entry 233# HostComputer 234>0 leshort 0x13c 235>>(8.l) string x \b, hostcomputer=%s 236>>12 use tiff_entry 237# WhitePoint 238>0 leshort 0x13e 239>>12 use tiff_entry 240# PrimaryChromaticities 241>0 leshort 0x13f 242>>12 use tiff_entry 243# YCbCrCoefficients 244>0 leshort 0x211 245>>12 use tiff_entry 246# YCbCrPositioning 247>0 leshort 0x213 248>>12 use tiff_entry 249# ReferenceBlackWhite 250>0 leshort 0x214 251>>12 use tiff_entry 252# Copyright 253>0 leshort 0x8298 254>>(8.l) string x \b, copyright=%s 255>>12 use tiff_entry 256# ExifOffset 257>0 leshort 0x8769 258>>12 use tiff_entry 259# GPS IFD 260>0 leshort 0x8825 \b, GPS-Data 261>>12 use tiff_entry 262 263#>0 leshort x \b, unknown=0x%x 264#>>12 use tiff_entry 265 2660 string MM\x00\x2b Big TIFF image data, big-endian 267!:mime image/tiff 2680 string II\x2b\x00 Big TIFF image data, little-endian 269!:mime image/tiff 270 271# PNG [Portable Network Graphics, or "PNG's Not GIF"] images 272# (Greg Roelofs, newt@uchicago.edu) 273# (Albert Cahalan, acahalan@cs.uml.edu) 274# 275# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ... 276# 2770 string \x89PNG\x0d\x0a\x1a\x0a PNG image data 278!:mime image/png 279>16 belong x \b, %d x 280>20 belong x %d, 281>24 byte x %d-bit 282>25 byte 0 grayscale, 283>25 byte 2 \b/color RGB, 284>25 byte 3 colormap, 285>25 byte 4 gray+alpha, 286>25 byte 6 \b/color RGBA, 287#>26 byte 0 deflate/32K, 288>28 byte 0 non-interlaced 289>28 byte 1 interlaced 290 291# possible GIF replacements; none yet released! 292# (Greg Roelofs, newt@uchicago.edu) 293# 294# GRR 950115: this was mine ("Zip GIF"): 2950 string GIF94z ZIF image (GIF+deflate alpha) 296!:mime image/x-unknown 297# 298# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better): 299# 3000 string FGF95a FGF image (GIF+deflate beta) 301!:mime image/x-unknown 302# 303# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal 304# (best; not yet implemented): 305# 3060 string PBF PBF image (deflate compression) 307!:mime image/x-unknown 308 309# GIF 3100 string GIF8 GIF image data 311!:mime image/gif 312!:apple 8BIMGIFf 313>4 string 7a \b, version 8%s, 314>4 string 9a \b, version 8%s, 315>6 leshort >0 %d x 316>8 leshort >0 %d 317#>10 byte &0x80 color mapped, 318#>10 byte&0x07 =0x00 2 colors 319#>10 byte&0x07 =0x01 4 colors 320#>10 byte&0x07 =0x02 8 colors 321#>10 byte&0x07 =0x03 16 colors 322#>10 byte&0x07 =0x04 32 colors 323#>10 byte&0x07 =0x05 64 colors 324#>10 byte&0x07 =0x06 128 colors 325#>10 byte&0x07 =0x07 256 colors 326 327# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster, 328# 1 plane, no encoding. 3290 string \361\0\100\273 CMU window manager raster image data 330>4 lelong >0 %d x 331>8 lelong >0 %d, 332>12 lelong >0 %d-bit 333 334# Magick Image File Format 3350 string id=ImageMagick MIFF image data 336 337# Artisan 3380 long 1123028772 Artisan image data 339>4 long 1 \b, rectangular 24-bit 340>4 long 2 \b, rectangular 8-bit with colormap 341>4 long 3 \b, rectangular 32-bit (24-bit with matte) 342 343# FIG (Facility for Interactive Generation of figures), an object-based format 3440 search/1 #FIG FIG image text 345>5 string x \b, version %.3s 346 347# PHIGS 3480 string ARF_BEGARF PHIGS clear text archive 3490 string @(#)SunPHIGS SunPHIGS 350# version number follows, in the form m.n 351>40 string SunBin binary 352>32 string archive archive 353 354# GKS (Graphics Kernel System) 3550 string GKSM GKS Metafile 356>24 string SunGKS \b, SunGKS 357 358# CGM image files 3590 string BEGMF clear text Computer Graphics Metafile 360 361# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de) 3620 string yz MGR bitmap, modern format, 8-bit aligned 3630 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned 3640 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned 3650 string yx MGR bitmap, modern format, squeezed 366 367# Fuzzy Bitmap (FBM) images 3680 string %bitmap\0 FBM image data 369>30 long 0x31 \b, mono 370>30 long 0x33 \b, color 371 372# facsimile data 3731 string PC\ Research,\ Inc group 3 fax data 374>29 byte 0 \b, normal resolution (204x98 DPI) 375>29 byte 1 \b, fine resolution (204x196 DPI) 376# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at> 3770 string Sfff structured fax file 378 379# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net> 380# most files with the extension .EPA and some with .BMP 3810 string \x11\x06 Award BIOS Logo, 136 x 84 382!:mime image/x-award-bioslogo 3830 string \x11\x09 Award BIOS Logo, 136 x 126 384!:mime image/x-award-bioslogo 385#0 string \x07\x1f BIOS Logo corrupted? 386# http://www.blackfiveservices.co.uk/awbmtools.shtml 387# http://biosgfx.narod.ru/v3/ 388# http://biosgfx.narod.ru/abr-2/ 3890 string AWBM 390>4 leshort <1981 Award BIOS bitmap 391!:mime image/x-award-bmp 392# image width is a multiple of 4 393>>4 leshort&0x0003 0 394>>>4 leshort x \b, %d 395>>>6 leshort x x %d 396>>4 leshort&0x0003 >0 \b, 397>>>4 leshort&0x0003 =1 398>>>>4 leshort x %d+3 399>>>4 leshort&0x0003 =2 400>>>>4 leshort x %d+2 401>>>4 leshort&0x0003 =3 402>>>>4 leshort x %d+1 403>>>6 leshort x x %d 404# at offset 8 starts imagedata followed by "RGB " marker 405 406# PC bitmaps (OS/2, Windows BMP files) (Greg Roelofs, newt@uchicago.edu) 407# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\ 408# 28bitmap_information_header.29 4090 string BM 410>14 leshort 12 PC bitmap, OS/2 1.x format 411!:mime image/x-ms-bmp 412>>18 leshort x \b, %d x 413>>20 leshort x %d 414>14 leshort 64 PC bitmap, OS/2 2.x format 415!:mime image/x-ms-bmp 416>>18 leshort x \b, %d x 417>>20 leshort x %d 418>14 leshort 40 PC bitmap, Windows 3.x format 419!:mime image/x-ms-bmp 420>>18 lelong x \b, %d x 421>>22 lelong x %d x 422>>28 leshort x %d 423>14 leshort 124 PC bitmap, Windows 98/2000 and newer format 424!:mime image/x-ms-bmp 425>>18 lelong x \b, %d x 426>>22 lelong x %d x 427>>28 leshort x %d 428>14 leshort 108 PC bitmap, Windows 95/NT4 and newer format 429!:mime image/x-ms-bmp 430>>18 lelong x \b, %d x 431>>22 lelong x %d x 432>>28 leshort x %d 433>14 leshort 128 PC bitmap, Windows NT/2000 format 434!:mime image/x-ms-bmp 435>>18 lelong x \b, %d x 436>>22 lelong x %d x 437>>28 leshort x %d 438# Too simple - MPi 439#0 string IC PC icon data 440#0 string PI PC pointer image data 441#0 string CI PC color icon data 442#0 string CP PC color pointer image data 443# Conflicts with other entries [BABYL] 444#0 string BA PC bitmap array data 445 446# XPM icons (Greg Roelofs, newt@uchicago.edu) 4470 search/1 /*\ XPM\ */ X pixmap image text 448!:mime image/x-xpmi 449 450# Utah Raster Toolkit RLE images (janl@ifi.uio.no) 4510 leshort 0xcc52 RLE image data, 452>6 leshort x %d x 453>8 leshort x %d 454>2 leshort >0 \b, lower left corner: %d 455>4 leshort >0 \b, lower right corner: %d 456>10 byte&0x1 =0x1 \b, clear first 457>10 byte&0x2 =0x2 \b, no background 458>10 byte&0x4 =0x4 \b, alpha channel 459>10 byte&0x8 =0x8 \b, comment 460>11 byte >0 \b, %d color channels 461>12 byte >0 \b, %d bits per pixel 462>13 byte >0 \b, %d color map channels 463 464# image file format (Robert Potter, potter@cs.rochester.edu) 4650 string Imagefile\ version- iff image data 466# this adds the whole header (inc. version number), informative but longish 467>10 string >\0 %s 468 469# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com) 4700 belong 0x59a66a95 Sun raster image data 471>4 belong >0 \b, %d x 472>8 belong >0 %d, 473>12 belong >0 %d-bit, 474#>16 belong >0 %d bytes long, 475>20 belong 0 old format, 476#>20 belong 1 standard, 477>20 belong 2 compressed, 478>20 belong 3 RGB, 479>20 belong 4 TIFF, 480>20 belong 5 IFF, 481>20 belong 0xffff reserved for testing, 482>24 belong 0 no colormap 483>24 belong 1 RGB colormap 484>24 belong 2 raw colormap 485#>28 belong >0 colormap is %d bytes long 486 487# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com) 488# 489# See 490# http://reality.sgi.com/grafica/sgiimage.html 491# 4920 beshort 474 SGI image data 493#>2 byte 0 \b, verbatim 494>2 byte 1 \b, RLE 495#>3 byte 1 \b, normal precision 496>3 byte 2 \b, high precision 497>4 beshort x \b, %d-D 498>6 beshort x \b, %d x 499>8 beshort x %d 500>10 beshort x \b, %d channel 501>10 beshort !1 \bs 502>80 string >0 \b, "%s" 503 5040 string IT01 FIT image data 505>4 belong x \b, %d x 506>8 belong x %d x 507>12 belong x %d 508# 5090 string IT02 FIT image data 510>4 belong x \b, %d x 511>8 belong x %d x 512>12 belong x %d 513# 5142048 string PCD_IPI Kodak Photo CD image pack file 515>0xe02 byte&0x03 0x00 , landscape mode 516>0xe02 byte&0x03 0x01 , portrait mode 517>0xe02 byte&0x03 0x02 , landscape mode 518>0xe02 byte&0x03 0x03 , portrait mode 5190 string PCD_OPA Kodak Photo CD overview pack file 520 521# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu> 522# FITS is the Flexible Image Transport System, the de facto standard for 523# data and image transfer, storage, etc., for the astronomical community. 524# (FITS floating point formats are big-endian.) 5250 string SIMPLE\ \ = FITS image data 526>109 string 8 \b, 8-bit, character or unsigned binary integer 527>108 string 16 \b, 16-bit, two's complement binary integer 528>107 string \ 32 \b, 32-bit, two's complement binary integer 529>107 string -32 \b, 32-bit, floating point, single precision 530>107 string -64 \b, 64-bit, floating point, double precision 531 532# other images 5330 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file 534 535# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image 536# stuff. 537# 5380 beshort 0x1010 PEX Binary Archive 539 540# DICOM medical imaging data 541128 string DICM DICOM medical imaging data 542!:mime application/dicom 543 544# XWD - X Window Dump file. 545# As described in /usr/X11R6/include/X11/XWDFile.h 546# used by the xwd program. 547# Bradford Castalia, idaeim, 1/01 548# updated by Adam Buchbinder, 2/09 549# The following assumes version 7 of the format; the first long is the length 550# of the header, which is at least 25 4-byte longs, and the one at offset 8 551# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth, 552# which is a maximum of 32. 5530 belong >100 554>8 belong <3 555>>12 belong <33 556>>>4 belong 7 XWD X Window Dump image data 557!:mime image/x-xwindowdump 558>>>>100 string >\0 \b, "%s" 559>>>>16 belong x \b, %dx 560>>>>20 belong x \b%dx 561>>>>12 belong x \b%d 562 563# PDS - Planetary Data System 564# These files use Parameter Value Language in the header section. 565# Unfortunately, there is no certain magic, but the following 566# strings have been found to be most likely. 5670 string NJPL1I00 PDS (JPL) image data 5682 string NJPL1I PDS (JPL) image data 5690 string CCSD3ZF PDS (CCSD) image data 5702 string CCSD3Z PDS (CCSD) image data 5710 string PDS_ PDS image data 5720 string LBLSIZE= PDS (VICAR) image data 573 574# pM8x: ATARI STAD compressed bitmap format 575# 576# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001 577# p M 8 5/6 xx yy zz data... 578# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed. 579# bytes either run horizontally (pM85) or vertically (pM86). yy is the 580# most frequent byte, xx and zz are runlength escape codes, where xx is 581# used for runs of yy. 582# 5830 string pM85 Atari ST STAD bitmap image data (hor) 584>5 byte 0x00 (white background) 585>5 byte 0xFF (black background) 5860 string pM86 Atari ST STAD bitmap image data (vert) 587>5 byte 0x00 (white background) 588>5 byte 0xFF (black background) 589 590# Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu 591# http://www.atarimax.com/jindroush.atari.org/afmtatr.html 5920 leshort 0x0296 Atari ATR image 593 594# XXX: 595# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other 596# magic. 597# SGI RICE image file <mpruett@sgi.com> 598#0 beshort 0x5249 RICE image 599#>2 beshort x v%d 600#>4 beshort x (%d x 601#>6 beshort x %d) 602#>8 beshort 0 8 bit 603#>8 beshort 1 10 bit 604#>8 beshort 2 12 bit 605#>8 beshort 3 13 bit 606#>10 beshort 0 4:2:2 607#>10 beshort 1 4:2:2:4 608#>10 beshort 2 4:4:4 609#>10 beshort 3 4:4:4:4 610#>12 beshort 1 RGB 611#>12 beshort 2 CCIR601 612#>12 beshort 3 RP175 613#>12 beshort 4 YUV 614 615# PCX image files 616# From: Dan Fandrich <dan@coneharvesters.com> 617# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX 618# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt 619# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000 620# test for bytes 0x0a,version byte (0,2,3,4,5),compression byte flag(0,1), bit depth (>0) of PCX or T5.DBT,T6.DBT 6210 ubelong&0xffF8fe00 0x0a000000 622# for PCX bit depth > 0 623>3 ubyte >0 624# test for valid versions 625>>1 ubyte <6 626>>>1 ubyte !1 PCX 627!:mime image/x-pcx 628#!:mime image/pcx 629>>>>1 ubyte 0 ver. 2.5 image data 630>>>>1 ubyte 2 ver. 2.8 image data, with palette 631>>>>1 ubyte 3 ver. 2.8 image data, without palette 632>>>>1 ubyte 4 for Windows image data 633>>>>1 ubyte 5 ver. 3.0 image data 634>>>>4 uleshort x bounding box [%d, 635>>>>6 uleshort x %d] - 636>>>>8 uleshort x [%d, 637>>>>10 uleshort x %d], 638>>>>65 ubyte >1 %d planes each of 639>>>>3 ubyte x %d-bit 640>>>>68 byte 1 colour, 641>>>>68 byte 2 grayscale, 642# this should not happen 643>>>>68 default x image, 644>>>>12 leshort >0 %d x 645>>>>>14 uleshort x %d dpi, 646>>>>2 byte 0 uncompressed 647>>>>2 byte 1 RLE compressed 648 649# Adobe Photoshop 650# From: Asbjoern Sloth Toennesen <asbjorn@lila.io> 6510 string 8BPS Adobe Photoshop Image 652!:mime image/vnd.adobe.photoshop 653>4 beshort 2 (PSB) 654>18 belong x \b, %d x 655>14 belong x %d, 656>24 beshort 0 bitmap 657>24 beshort 1 grayscale 658>>12 beshort 2 with alpha 659>24 beshort 2 indexed 660>24 beshort 3 RGB 661>>12 beshort 4 \bA 662>24 beshort 4 CMYK 663>>12 beshort 5 \bA 664>24 beshort 7 multichannel 665>24 beshort 8 duotone 666>24 beshort 9 lab 667>12 beshort > 1 668>>12 beshort x \b, %dx 669>12 beshort 1 \b, 670>22 beshort x %d-bit channel 671>12 beshort > 1 \bs 672 673# XV thumbnail indicator (ThMO) 6740 string P7\ 332 XV thumbnail image data 675 676# NITF is defined by United States MIL-STD-2500A 6770 string NITF National Imagery Transmission Format 678>25 string >\0 dated %.14s 679 680# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff) 6810 belong 0x00010008 GEM Image data 682>12 beshort x %d x 683>14 beshort x %d, 684>4 beshort x %d planes, 685>8 beshort x %d x 686>10 beshort x %d pixelsize 687 688# GEM Metafile (Wolfram Kleff) 6890 lelong 0x0018FFFF GEM Metafile data 690>4 leshort x version %d 691 692# 693# SMJPEG. A custom Motion JPEG format used by Loki Entertainment 694# Software Torbjorn Andersson <d91tan@Update.UU.SE>. 695# 6960 string \0\nSMJPEG SMJPEG 697>8 belong x %d.x data 698# According to the specification you could find any number of _TXT 699# headers here, but I can't think of any way of handling that. None of 700# the SMJPEG files I tried it on used this feature. Even if such a 701# file is encountered the output should still be reasonable. 702>16 string _SND \b, 703>>24 beshort >0 %d Hz 704>>26 byte 8 8-bit 705>>26 byte 16 16-bit 706>>28 string NONE uncompressed 707# >>28 string APCM ADPCM compressed 708>>27 byte 1 mono 709>>28 byte 2 stereo 710# Help! Isn't there any way to avoid writing this part twice? 711>>32 string _VID \b, 712# >>>48 string JFIF JPEG 713>>>40 belong >0 %d frames 714>>>44 beshort >0 (%d x 715>>>46 beshort >0 %d) 716>16 string _VID \b, 717# >>32 string JFIF JPEG 718>>24 belong >0 %d frames 719>>28 beshort >0 (%d x 720>>30 beshort >0 %d) 721 7220 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File 723 724# "thumbnail file" (icon) 725# descended from "xv", but in use by other applications as well (Wolfram Kleff) 7260 string P7\ 332 XV "thumbnail file" (icon) data 727 728# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?) 7290 string KiSS KISS/GS 730>4 byte 16 color 731>>5 byte x %d bit 732>>8 leshort x %d colors 733>>10 leshort x %d groups 734>4 byte 32 cell 735>>5 byte x %d bit 736>>8 leshort x %d x 737>>10 leshort x %d 738>>12 leshort x +%d 739>>14 leshort x +%d 740 741# Webshots (www.webshots.com), by John Harrison 7420 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file 743 744# Hercules DASD image files 745# From Jan Jaeger <jj@septa.nl> 7460 string CKD_P370 Hercules CKD DASD image file 747>8 long x \b, %d heads per cylinder 748>12 long x \b, track size %d bytes 749>16 byte x \b, device type 33%2.2X 750 7510 string CKD_C370 Hercules compressed CKD DASD image file 752>8 long x \b, %d heads per cylinder 753>12 long x \b, track size %d bytes 754>16 byte x \b, device type 33%2.2X 755 7560 string CKD_S370 Hercules CKD DASD shadow file 757>8 long x \b, %d heads per cylinder 758>12 long x \b, track size %d bytes 759>16 byte x \b, device type 33%2.2X 760 761# Squeak images and programs - etoffi@softhome.net 7620 string \146\031\0\0 Squeak image data 7630 search/1 'From\040Squeak Squeak program text 764 765# partimage: file(1) magic for PartImage files (experimental, incomplete) 766# Author: Hans-Joachim Baader <hjb@pro-linux.de> 7670 string PaRtImAgE-VoLuMe PartImage 768>0x0020 string 0.6.1 file version %s 769>>0x0060 lelong >-1 volume %d 770#>>0x0064 8 byte identifier 771#>>0x007c reserved 772>>0x0200 string >\0 type %s 773>>0x1400 string >\0 device %s, 774>>0x1600 string >\0 original filename %s, 775# Some fields omitted 776>>0x2744 lelong 0 not compressed 777>>0x2744 lelong 1 gzip compressed 778>>0x2744 lelong 2 bzip2 compressed 779>>0x2744 lelong >2 compressed with unknown algorithm 780>0x0020 string >0.6.1 file version %s 781>0x0020 string <0.6.1 file version %s 782 783# DCX is multi-page PCX, using a simple header of up to 1024 784# offsets for the respective PCX components. 785# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> 7860 lelong 987654321 DCX multi-page PCX image data 787 788# Simon Walton <simonw@matteworld.com> 789# Kodak Cineon format for scanned negatives 790# http://www.kodak.com/US/en/motion/support/dlad/ 7910 lelong 0xd75f2a80 Cineon image data 792>200 belong >0 \b, %d x 793>204 belong >0 %d 794 795 796# Bio-Rad .PIC is an image format used by microscope control systems 797# and related image processing software used by biologists. 798# From: Vebjorn Ljosa <vebjorn@ljosa.com> 799# BOOL values are two-byte integers; use them to rule out false positives. 800# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt 801# Samples: http://www.loci.wisc.edu/software/sample-data 80214 leshort <2 803>62 leshort <2 804>>54 leshort 12345 Bio-Rad .PIC Image File 805>>>0 leshort >0 %d x 806>>>2 leshort >0 %d, 807>>>4 leshort =1 1 image in file 808>>>4 leshort >1 %d images in file 809 810# From Jan "Yenya" Kasprzak <kas@fi.muni.cz> 811# The description of *.mrw format can be found at 812# http://www.dalibor.cz/minolta/raw_file_format.htm 8130 string \000MRM Minolta Dimage camera raw image data 814 815# Summary: DjVu image / document 816# Extension: .djvu 817# Reference: http://djvu.org/docs/DjVu3Spec.djvu 818# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr> 819# Modified by (1): Abel Cheung <abelcheung@gmail.com> 8200 string AT&TFORM 821>12 string DJVM DjVu multiple page document 822!:mime image/vnd.djvu 823>12 string DJVU DjVu image or single page document 824!:mime image/vnd.djvu 825>12 string DJVI DjVu shared document 826!:mime image/vnd.djvu 827>12 string THUM DjVu page thumbnails 828!:mime image/vnd.djvu 829 830# Originally by Marc Espie 831# Modified by Robert Minsk <robertminsk at yahoo.com> 832# http://www.openexr.com/openexrfilelayout.pdf 8330 lelong 20000630 OpenEXR image data, 834!:mime image/x-exr 835>4 lelong&0x000000ff x version %d, 836>4 lelong ^0x00000200 storage: scanline 837>4 lelong &0x00000200 storage: tiled 838>8 search/0x1000 compression\0 \b, compression: 839>>&16 byte 0 none 840>>&16 byte 1 rle 841>>&16 byte 2 zips 842>>&16 byte 3 zip 843>>&16 byte 4 piz 844>>&16 byte 5 pxr24 845>>&16 byte 6 b44 846>>&16 byte 7 b44a 847>>&16 byte >7 unknown 848>8 search/0x1000 dataWindow\0 \b, dataWindow: 849>>&10 lelong x (%d 850>>&14 lelong x %d)- 851>>&18 lelong x \b(%d 852>>&22 lelong x %d) 853>8 search/0x1000 displayWindow\0 \b, displayWindow: 854>>&10 lelong x (%d 855>>&14 lelong x %d)- 856>>&18 lelong x \b(%d 857>>&22 lelong x %d) 858>8 search/0x1000 lineOrder\0 \b, lineOrder: 859>>&14 byte 0 increasing y 860>>&14 byte 1 decreasing y 861>>&14 byte 2 random y 862>>&14 byte >2 unknown 863 864# SMPTE Digital Picture Exchange Format, SMPTE DPX 865# 866# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital 867# Moving-Picture Exchange (DPX), v1.0, 18 February 1994 868# Robert Minsk <robertminsk at yahoo.com> 8690 string SDPX DPX image data, big-endian, 870!:mime image/x-dpx 871>768 beshort <4 872>>772 belong x %dx 873>>776 belong x \b%d, 874>768 beshort >3 875>>776 belong x %dx 876>>772 belong x \b%d, 877>768 beshort 0 left to right/top to bottom 878>768 beshort 1 right to left/top to bottom 879>768 beshort 2 left to right/bottom to top 880>768 beshort 3 right to left/bottom to top 881>768 beshort 4 top to bottom/left to right 882>768 beshort 5 top to bottom/right to left 883>768 leshort 6 bottom to top/left to right 884>768 leshort 7 bottom to top/right to left 885 886# From: Tom Hilinski <tom.hilinski@comcast.net> 887# http://www.unidata.ucar.edu/packages/netcdf/ 8880 string CDF\001 NetCDF Data Format data 889 890#----------------------------------------------------------------------- 891# Hierarchical Data Format, used to facilitate scientific data exchange 892# specifications at http://hdf.ncsa.uiuc.edu/ 8930 belong 0x0e031301 Hierarchical Data Format (version 4) data 894!:mime application/x-hdf 8950 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) data 896!:mime application/x-hdf 897512 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 512 bytes user block 898!:mime application/x-hdf 8991024 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 1k user block 900!:mime application/x-hdf 9012048 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 2k user block 902!:mime application/x-hdf 9034096 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 4k user block 904!:mime application/x-hdf 905 906 907# From: Tobias Burnus <burnus@net-b.de> 908# Xara (for a while: Corel Xara) is a graphic package, see 909# http://www.xara.com/ for Windows and as GPL application for Linux 9100 string XARA\243\243 Xara graphics file 911 912# http://www.cartesianinc.com/Tech/ 9130 string CPC\262 Cartesian Perceptual Compression image 914!:mime image/x-cpi 915 916# From Albert Cahalan <acahalan@gmail.com> 917# puredigital used it for the CVS disposable camcorder 918#8 lelong 4 ZBM bitmap image data 919#>4 leshort x %u x 920#>6 leshort x %u 921 922# From Albert Cahalan <acahalan@gmail.com> 923# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons 9240 string C565 OLPC firmware icon image data 925>4 leshort x %u x 926>6 leshort x %u 927 928# Applied Images - Image files from Cytovision 929# Gustavo Junior Alves <gjalves@gjalves.com.br> 9300 string \xce\xda\xde\xfa Cytovision Metaphases file 9310 string \xed\xad\xef\xac Cytovision Karyotype file 9320 string \x0b\x00\x03\x00 Cytovision FISH Probe file 9330 string \xed\xfe\xda\xbe Cytovision FLEX file 9340 string \xed\xab\xed\xfe Cytovision FLEX file 9350 string \xad\xfd\xea\xad Cytovision RATS file 936 937# Wavelet Scalar Quantization format used in gray-scale fingerprint images 938# From Tano M Fotang <mfotang@quanteq.com> 9390 string \xff\xa0\xff\xa8\x00 Wavelet Scalar Quantization image data 940 941# Type: PCO B16 image files 942# URL: http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf 943# From: Florian Philipp <florian.philipp@binarywings.net> 944# Extension: .b16 945# Description: Pixel image format produced by PCO Camware, typically used 946# together with PCO cameras. 947# Note: Different versions exist for e.g. 8 bit and 16 bit images. 948# Documentation is incomplete. 9490 string/b PCO- PCO B16 image data 950>12 lelong x \b, %dx 951>16 lelong x \b%d 952>20 lelong 0 \b, short header 953>20 lelong -1 \b, extended header 954>>24 lelong 0 \b, grayscale 955>>>36 lelong 0 linear LUT 956>>>36 lelong 1 logarithmic LUT 957>>>28 lelong x [%d 958>>>32 lelong x \b,%d] 959>>24 lelong 1 \b, color 960>>>64 lelong 0 linear LUT 961>>>64 lelong 1 logarithmic LUT 962>>>40 lelong x r[%d 963>>>44 lelong x \b,%d] 964>>>48 lelong x g[%d 965>>>52 lelong x \b,%d] 966>>>56 lelong x b[%d 967>>>60 lelong x \b,%d] 968 969# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches 970# From: Markus Heidelberg <markus.heidelberg at web.de> 9710 string/t [BitmapInfo2] Polar Monitor Bitmap text 972!:mime image/x-polar-monitor-bitmap 973 974# From: Rick Richardson <rickrich@gmail.com> 9750 string GARMIN\ BITMAP\ 01 Garmin Bitmap file 976 977# Type: Ulead Photo Explorer5 (.pe5) 978# URL: http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese) 979# From: Simon Horman <horms@debian.org> 9800 string IIO2H Ulead Photo Explorer5 981 982# Type: X11 cursor 983# URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup 984# From: Mathias Brodala <info@noctus.net> 9850 string Xcur X11 cursor 986 987# Type: Olympus ORF raw images. 988# URL: http://libopenraw.freedesktop.org/wiki/Olympus_ORF 989# From: Adam Buchbinder <adam.buchbinder@gmail.com> 9900 string MMOR Olympus ORF raw image data, big-endian 991!:mime image/x-olympus-orf 9920 string IIRO Olympus ORF raw image data, little-endian 993!:mime image/x-olympus-orf 9940 string IIRS Olympus ORF raw image data, little-endian 995!:mime image/x-olympus-orf 996 997# Type: files used in modern AVCHD camcoders to store clip information 998# Extension: .cpi 999# From: Alexander Danilov <alexander.a.danilov@gmail.com> 10000 string HDMV0100 AVCHD Clip Information 1001 1002# From: Adam Buchbinder <adam.buchbinder@gmail.com> 1003# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/ 1004# Radiance HDR; usually has .pic or .hdr extension. 10050 string #?RADIANCE\n Radiance HDR image data 1006#!mime image/vnd.radiance 1007 1008# From: Adam Buchbinder <adam.buchbinder@gmail.com> 1009# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf 1010# Used by the pfstools packages. The regex matches for the image size could 1011# probably use some work. The MIME type is made up; if there's one in 1012# actual common use, it should replace the one below. 10130 string PFS1\x0a PFS HDR image data 1014#!mime image/x-pfs 1015>1 regex [0-9]*\ \b, %s 1016>>1 regex \ [0-9]{4} \bx%s 1017 1018# Type: Foveon X3F 1019# URL: http://www.photofo.com/downloads/x3f-raw-format.pdf 1020# From: Adam Buchbinder <adam.buchbinder@gmail.com> 1021# Note that the MIME type isn't defined anywhere that I can find; if 1022# there's a canonical type for this format, it should replace this one. 10230 string FOVb Foveon X3F raw image data 1024!:mime image/x-x3f 1025>6 leshort x \b, version %d. 1026>4 leshort x \b%d 1027>28 lelong x \b, %dx 1028>32 lelong x \b%d 1029 1030# Paint.NET file 1031# From Adam Buchbinder <adam.buchbinder@gmail.com> 10320 string PDN3 Paint.NET image data 1033!:mime image/x-paintnet 1034 1035# Not really an image. 1036# From: "Tano M. Fotang" <mfotang@quanteq.com> 10370 string \x46\x4d\x52\x00 ISO/IEC 19794-2 Format Minutiae Record (FMR) 1038 1039# WEBP https://developers.google.com/speed/webp/docs/riff_container 1040#0 string RIFF 1041#>8 string WEBP Web/P image data 1042#>>4 lelong x \b, %d bytes 1043 1044# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip 1045# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip 104690 bequad 0x574D50484F544F00 JPEG-XR Image 1047>98 byte&0x08 =0x08 \b, hard tiling 1048>99 byte&0x80 =0x80 \b, tiling present 1049>99 byte&0x40 =0x40 \b, codestream present 1050>99 byte&0x38 x \b, spatial xform= 1051>99 byte&0x38 0x00 \bTL 1052>99 byte&0x38 0x08 \bBL 1053>99 byte&0x38 0x10 \bTR 1054>99 byte&0x38 0x18 \bBR 1055>99 byte&0x38 0x20 \bBT 1056>99 byte&0x38 0x28 \bRB 1057>99 byte&0x38 0x30 \bLT 1058>99 byte&0x38 0x38 \bLB 1059>100 byte&0x80 =0x80 \b, short header 1060>>102 beshort+1 x \b, %d 1061>>104 beshort+1 x \bx%d 1062>100 byte&0x80 =0x00 \b, long header 1063>>102 belong+1 x \b, %x 1064>>106 belong+1 x \bx%x 1065>101 beshort&0xf x \b, bitdepth= 1066>>101 beshort&0xf 0x0 \b1-WHITE=1 1067>>101 beshort&0xf 0x1 \b8 1068>>101 beshort&0xf 0x2 \b16 1069>>101 beshort&0xf 0x3 \b16-SIGNED 1070>>101 beshort&0xf 0x4 \b16-FLOAT 1071>>101 beshort&0xf 0x5 \b(reserved 5) 1072>>101 beshort&0xf 0x6 \b32-SIGNED 1073>>101 beshort&0xf 0x7 \b32-FLOAT 1074>>101 beshort&0xf 0x8 \b5 1075>>101 beshort&0xf 0x9 \b10 1076>>101 beshort&0xf 0xa \b5-6-5 1077>>101 beshort&0xf 0xb \b(reserved %d) 1078>>101 beshort&0xf 0xc \b(reserved %d) 1079>>101 beshort&0xf 0xd \b(reserved %d) 1080>>101 beshort&0xf 0xe \b(reserved %d) 1081>>101 beshort&0xf 0xf \b1-BLACK=1 1082>101 beshort&0xf0 x \b, colorfmt= 1083>>101 beshort&0xf0 0x00 \bYONLY 1084>>101 beshort&0xf0 0x10 \bYUV240 1085>>101 beshort&0xf0 0x20 \bYWV422 1086>>101 beshort&0xf0 0x30 \bYWV444 1087>>101 beshort&0xf0 0x40 \bCMYK 1088>>101 beshort&0xf0 0x50 \bCMYKDIRECT 1089>>101 beshort&0xf0 0x60 \bNCOMPONENT 1090>>101 beshort&0xf0 0x70 \bRGB 1091>>101 beshort&0xf0 0x80 \bRGBE 1092>>101 beshort&0xf0 >0x80 \b(reserved 0x%x) 1093 1094# From: Johan van der Knijff <johan.vanderknijff@kb.nl> 1095# 1096# BPG (Better Portable Graphics) format 1097# http://bellard.org/bpg/ 1098# http://fileformats.archiveteam.org/wiki/BPG 1099# 11000 string \x42\x50\x47\xFB BPG (Better Portable Graphics) 1101!:mime image/bpg 1102