images revision 68349
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
201	belong&0xfff7ffff	0x00020000	Targa image data - RGB
21>2	byte&8			8		- RLE
221	belong&0xfff7ffff	0x00030000	Targa image data - Mono
23>2	byte&8			8		- RLE
24
25# PBMPLUS images
26# The next byte following the magic is always whitespace.
270	string		P1		PBM image text
280	string		P2		PGM image text
290	string		P3		PPM image text
300	string		P4		PBM "rawbits" image data
310	string		P5		PGM "rawbits" image data
320	string		P6		PPM "rawbits" image data
33
34# NIFF (Navy Interchange File Format, a modification of TIFF) images
350	string		IIN1		NIFF image data
36
37# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
38# The second word of TIFF files is the TIFF version number, 42, which has
39# never changed.  The TIFF specification recommends testing for it.
400	string		MM\x00\x2a	TIFF image data, big-endian
410	string		II\x2a\x00	TIFF image data, little-endian
42
43# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
44# (Greg Roelofs, newt@uchicago.edu)
45# (Albert Cahalan, acahalan@cs.uml.edu)
46#
47# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
48#
490	string		\x89PNG		PNG image data,
50>4	belong		!0x0d0a1a0a	CORRUPTED,
51>4	belong		0x0d0a1a0a
52>>16	belong		x		%ld x
53>>20	belong		x		%ld,
54>>24	byte		x		%d-bit
55>>25	byte		0		grayscale,
56>>25	byte		2		\b/color RGB,
57>>25	byte		3		colormap,
58>>25	byte		4		gray+alpha,
59>>25	byte		6		\b/color RGBA,
60#>>26	byte		0		deflate/32K,
61>>28	byte		0		non-interlaced
62>>28	byte		1		interlaced
631	string		PNG		PNG image data, CORRUPTED
64
65# GIF
660	string		GIF8		GIF image data
67>4	string		7a		\b, version 8%s,
68>4	string		9a		\b, version 8%s,
69>6	leshort		>0		%hd x
70>8	leshort		>0		%hd,
71#>10	byte		&0x80		color mapped,
72#>10	byte&0x07	=0x00		2 colors
73#>10	byte&0x07	=0x01		4 colors
74#>10	byte&0x07	=0x02		8 colors
75#>10	byte&0x07	=0x03		16 colors
76#>10	byte&0x07	=0x04		32 colors
77#>10	byte&0x07	=0x05		64 colors
78#>10	byte&0x07	=0x06		128 colors
79#>10	byte&0x07	=0x07		256 colors
80
81# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
82# 1 plane, no encoding.
830	string		\361\0\100\273	CMU window manager raster image data
84>4	lelong		>0		%d x
85>8	lelong		>0		%d,
86>12	lelong		>0		%d-bit
87
88# Magick Image File Format
890	string		id=ImageMagick	MIFF image data
90
91# Artisan
920	long		1123028772	Artisan image data
93>4	long		1		\b, rectangular 24-bit
94>4	long		2		\b, rectangular 8-bit with colormap
95>4	long		3		\b, rectangular 32-bit (24-bit with matte)
96
97# FIG (Facility for Interactive Generation of figures), an object-based format
980	string		#FIG		FIG image text
99>5	string		x		\b, version %.3s
100
101# PHIGS
1020	string		ARF_BEGARF		PHIGS clear text archive
1030	string		@(#)SunPHIGS		SunPHIGS
104# version number follows, in the form m.n
105>40	string		SunBin			binary
106>32	string		archive			archive
107
108# GKS (Graphics Kernel System)
1090	string		GKSM		GKS Metafile
110>24	string		SunGKS		\b, SunGKS
111
112# CGM image files
1130	string		BEGMF		clear text Computer Graphics Metafile
114# XXX - questionable magic
1150	beshort&0xffe0	0x0020		binary Computer Graphics Metafile
1160	beshort		0x3020		character Computer Graphics Metafile
117
118# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
1190	string	yz	MGR bitmap, modern format, 8-bit aligned
1200	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
1210	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
1220	string	yx	MGR bitmap, modern format, squeezed
123
124# Fuzzy Bitmap (FBM) images
1250	string		%bitmap\0	FBM image data
126>30	long		0x31		\b, mono
127>30	long		0x33		\b, color
128
129# facsimile data
1301	string		PC\ Research,\ Inc	group 3 fax data
131>29	byte		0		\b, normal resolution (204x98 DPI)
132>29	byte		1		\b, fine resolution (204x196 DPI)
133
134# PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
1350	string		BM		PC bitmap data
136>14	leshort		12		\b, OS/2 1.x format
137>>18	leshort		x		\b, %d x
138>>20	leshort		x		%d
139>14	leshort		64		\b, OS/2 2.x format
140>>18	leshort		x		\b, %d x
141>>20	leshort		x		%d
142>14	leshort		40		\b, Windows 3.x format
143>>18	lelong		x		\b, %d x
144>>22	lelong		x		%d x
145>>28	leshort		x		%d
1460	string		IC		PC icon data
1470	string		PI		PC pointer image data
1480	string		CI		PC color icon data
1490	string		CP		PC color pointer image data
150# Conflicts with other entries [BABYL]
151#0	string		BA		PC bitmap array data
152
153# JPEG images
154# SunOS 5.5.1 had
155#
156#	0	string		\377\330\377\340	JPEG file
157#	0	string		\377\330\377\356	JPG file
158#
159# both of which turn into "JPEG image data" here.
160#
1610	beshort		0xffd8		JPEG image data
162>6	string		JFIF		\b, JFIF standard
163# HSI is Handmade Software's proprietary JPEG encoding scheme
1640	string		hsi1		JPEG image data, HSI proprietary
165
166# XPM icons (Greg Roelofs, newt@uchicago.edu)
167# note possible collision with C/REXX entry in c-lang; currently commented out
1680	string		/*\ XPM\ */	X pixmap image text
169
170# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
1710	leshort		0xcc52		RLE image data,
172>6	leshort		x		%d x
173>8	leshort		x		%d
174>2	leshort		>0		\b, lower left corner: %d
175>4	leshort		>0		\b, lower right corner: %d
176>10	byte&0x1	=0x1		\b, clear first
177>10	byte&0x2	=0x2		\b, no background
178>10	byte&0x4	=0x4		\b, alpha channel
179>10	byte&0x8	=0x8		\b, comment
180>11	byte		>0		\b, %d color channels
181>12	byte		>0		\b, %d bits per pixel
182>13	byte		>0		\b, %d color map channels
183
184# image file format (Robert Potter, potter@cs.rochester.edu)
1850	string		Imagefile\ version-	iff image data
186# this adds the whole header (inc. version number), informative but longish
187>10	string		>\0		%s
188
189# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
1900	belong		0x59a66a95	Sun raster image data
191>4	belong		>0		\b, %d x
192>8	belong		>0		%d,
193>12	belong		>0		%d-bit,
194#>16	belong		>0		%d bytes long,
195>20	belong		0		old format,
196#>20	belong		1		standard,
197>20	belong		2		compressed,
198>20	belong		3		RGB,
199>20	belong		4		TIFF,
200>20	belong		5		IFF,
201>20	belong		0xffff		reserved for testing,
202>24	belong		0		no colormap
203>24	belong		1		RGB colormap
204>24	belong		2		raw colormap
205#>28	belong		>0		colormap is %d bytes long
206
207# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
208#
209# See
210#	http://reality.sgi.com/grafica/sgiimage.html
211#
2120	beshort		474		SGI image data
213#>2	byte		0		\b, verbatim
214>2	byte		1		\b, RLE
215#>3	byte		1		\b, normal precision
216>3	byte		2		\b, high precision
217>4	beshort		x		\b, %d-D
218>6	beshort		x		\b, %d x
219>8	beshort		x		%d
220>10	beshort		x		\b, %d channel
221>10	beshort		!1		\bs
222>80	string		>0		\b, "%s"
223
2240	string		IT01		FIT image data
225>4	belong		x		\b, %d x
226>8	belong		x		%d x
227>12	belong		x		%d
228#
2290	string		IT02		FIT image data
230>4	belong		x		\b, %d x
231>8	belong		x		%d x
232>12	belong		x		%d
233#
2342048	string		PCD_IPI		Kodak Photo CD image pack file
2350	string		PCD_OPA		Kodak Photo CD overview pack file
236
237# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
238# FITS is the Flexible Image Transport System, the de facto standard for
239# data and image transfer, storage, etc., for the astronomical community.
240# (FITS floating point formats are big-endian.)
2410	string	SIMPLE\ \ =	FITS image data
242>109	string	8		\b, 8-bit, character or unsigned binary integer
243>108	string	16		\b, 16-bit, two's complement binary integer
244>107	string	\ 32		\b, 32-bit, two's complement binary integer
245>107	string	-32		\b, 32-bit, floating point, single precision
246>107	string	-64		\b, 64-bit, floating point, double precision
247
248# other images
2490	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
2500	string		!!		Bennet Yee's "face" format
251
252# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
253# stuff.
254#
2550	beshort		0x1010		PEX Binary Archive
256
257# Visio drawings
25803000	string	Visio\ (TM)\ Drawing	%s
259
260# Tgif files
2610	string	\%TGIF\ x 		Tgif file version %s
262
263# DICOM medical imaging data
264128	string	DICM			DICOM medical imaging data
265