#------------------------------------------------------------------------------ # images: file(1) magic for image formats (see also "c-lang" for XPM bitmaps) # # originally from jef@helios.ee.lbl.gov (Jef Poskanzer), # additions by janl@ifi.uio.no as well as others. Jan also suggested # merging several one- and two-line files into here. # # XXX - byte order for GIF and TIFF fields? # [GRR: TIFF allows both byte orders; GIF is little-endian] # # [GRR: what the hell is this doing in here?] 0 string xbtoa btoa'd file # PBMPLUS 0 string P1 PBM file 0 string P2 PGM file 0 string P3 PPM file 0 string P4 PBM "rawbits" file 0 string P5 PGM "rawbits" file 0 string P6 PPM "rawbits" file # NIFF (Navy Interchange File Format, a modification of TIFF) images # this *must* go before TIFF 0 string IIN1 NIFF raster data # TIFF images 0 string MM TIFF file, big-endian >2 beshort >0 - version %d 0 string II TIFF file, little-endian >2 leshort >0 - version %d # PNG [Portable Network Graphics, or "PNG's Not GIF"] images # (Greg Roelofs, newt@uchicago.edu) # # 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ... # 0 string \x89PNG PNG image, >4 belong !0x0d0a1a0a CORRUPTED, >16 belong x %ld x >20 belong x %ld, >24 byte x %d-bit >25 byte 0 grayscale, >25 byte 2 \b/color RGB, >25 byte 3 colormap, >25 byte 4 gray+alpha, >25 byte 6 \b/color RGBA, #>26 byte 0 deflate/32K, >28 byte 0 non-interlaced >28 byte 1 interlaced # GIF 0 string GIF GIF image >3 string 87a - version %s, >3 string 89a - version %s, >6 leshort >0 %hd x >8 leshort >0 %hd, #>10 byte &0x80 color mapped, # GRR 950330: the following is not accurate for most GIFs: #>10 byte &0x40 interlaced, >10 byte&0x07 =0x00 2 colors >10 byte&0x07 =0x01 4 colors >10 byte&0x07 =0x02 8 colors >10 byte&0x07 =0x03 16 colors >10 byte&0x07 =0x04 32 colors >10 byte&0x07 =0x05 64 colors >10 byte&0x07 =0x06 128 colors >10 byte&0x07 =0x07 256 colors # Miscellany 0 long 1123028772 Artisan image file >4 long 1 rectangular 24-bit image >4 long 2 rectangular 8-bit image with colormap >4 long 3 rectangular 32-bit image (24-bit with matte) 0 string \361\0\100\273 CMU window manager bitmap 0 string #FIG FIG graphics savefile text >6 string 2.1 Version 2.1 >6 string 2.0 Version 2.0 0 string GKSM GKS Metafile 8 string ILBM IFF ILBM file 0 string ARF_BEGARF PHIGS clear text archive # More miscellany from Daniel Quinlan (quinlan@yggdrasil.com) 0 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file 0 string !! Bennet Yee's "face" format 0 string @(#)SunPHIGS SunPHIGS # version number follows, in the form m.n >40 string SunBin binary >32 string archive archive 0 string BEGMF clear text Computer Graphics Metafile # these should be beshort, but not sure 0 beshort&0xffe0 0x0020 binary Computer Graphics Metafile 0 beshort 0x3020 character Computer Graphics Metafile # From: (Michael Haardt) 0 string yz MGR bitmap, modern format, 8 bit aligned 0 string zz MGR bitmap, old format, 1 bit deep, 16 bit aligned 0 string xz MGR bitmap, old format, 1 bit deep, 32 bit aligned 0 string yx MGR bitmap, modern format, squeezed 0 string %bitmap FBM pixmap >30 long 0x31 (mono) >30 long 0x33 (color) 4 string Research, Digifax-G3-File >29 byte 1 , fine resolution >29 byte 0 , normal resolution # JPEG images 0 beshort 0xffd8 JPEG image >6 string JFIF - JFIF standard # from cameron@cs.unsw.oz.au (Cameron Simpson): 0 string hsi1 JPEG image - HSI encoded (proprietary) # PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu) 0 string BM bitmap >14 byte 12 (OS/2 1.x format) >14 byte 64 (OS/2 2.x format) >14 byte 40 (Windows 3.x format) 0 string IC icon 0 string PI pointer 0 string CI color icon 0 string CP color pointer 0 string BA bitmap array # Utah Raster Toolkit RLE images (two versions) # # From # I made this with the help of the man page for rle(5). Ihey missing # from the magic numbers I have: 0 beshort 0xcc52 Utah Raster Toolkit RLE >2 beshort >0 lower left corner: %d >4 beshort >0 lower right corner: %d >6 beshort >0 %d x >8 beshort >0 %d >10 byte&0x1 =0x1 CLEARFIRST >10 byte&0x2 =0x2 NO_BACKGROUND >10 byte&0x4 =0x4 ALPHA >10 byte&0x8 =0x8 COMMENT >11 byte >0 %d colour channels >12 byte >0 %d bits per pixel >13 byte >0 %d colour map channels # # RLE images (Disaster prone simpleton, m91dps@ecs.ox.ac.uk) # Here's a magic file entry for rle images. 24-bit images tend to produce # foo.rle size 42x42, 3 comps each 8 bits # (for arbitary, prossibly different values of 42). # freely redistribuable under the GPL # [GRR: which endianness? big?] 0 short 0xcc55 RLE image data >6 short >0 %d x >8 short >0 %d, >2 short >0 x offset by %d, >4 short >0 y offset by %d, >11 byte =0 colour map >11 byte >1 %d comps each >12 byte =1 1 bit >12 byte >1 %d bits # FBM images, culled from xli source (d. p. simpleton, m91dps@ecs.ox.ac.uk) 0 string %bitmap fbm image data # image file format (Robert Potter, potter@cs.rochester.edu) 0 string Imagefile\ version- iff image data # this adds the whole header (inc. version number), informative but longish >10 string >\0 %s # Sun rasterfiles, from Daniel Quinlan (quinlan@yggdrasil.com) # # XXX - Does the Sun 386i use the same byte order? # 0 belong 0x59a66a95 Sun raster image >4 belong >0 %d x >8 belong >0 %d, >12 belong >0 %d-bit, # this is almost the same as the file length (what about compressed?) #>16 belong >0 %d bytes long, >20 belong 0 old format, # no need to complain if it is standard #>20 belong 1 standard, >20 belong 2 compressed, >20 belong 3 RGB, >20 belong 4 TIFF, >20 belong 5 IFF, >20 belong 0xffff reserved for testing, >24 belong 0 no colormap >24 belong 1 RGB colormap >24 belong 2 raw colormap # this doesn't impart much useful information (or does it?) #>28 belong >0 colormap is %d bytes long # Daniel Quinlan (quinlan@yggdrasil.com) -- from an SGI machine # There may be a byte swapped version of SGI imagelib images, but # I haven't seen any evidence of programs that support it. 0 beshort 000732 SGI imagelib image >6 beshort x \b, %d x >8 beshort x %d # 0 string IT01 FIT image file >4 belong x \b, %d x >8 belong x %d x >12 belong x %d # 0 string IT02 FIT image file >4 belong x \b, %d x >8 belong x %d x >12 belong x %d # 2048 string PCD_IPI Kodak Photo CD image pack file 0 string PCD_OPA Kodak Photo CD overview pack file # Jeff Uphoff # FITS is the Flexible Image Transport System, the de facto standard for # data and image transfer, storage, etc., for the astronomical community. # FITS format. 0 string SIMPLE\ \ = FITS >107 string -32 32 bits per pixel, IEEE big endian float >107 string \ 32 32 bits per pixel, unsigned integer >108 string 16 16 bits per pixel, unsigned integer >109 string 8 8 bits per pixel, unsigned integer