xref: /freebsd/contrib/file/magic/Magdir/images (revision 6574b8ed19b093f0af09501d2c9676c28993cb97)
1
2#------------------------------------------------------------------------------
3# $File: images,v 1.91 2014/04/30 21:41:02 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
1180	string		II\x2a\x00	TIFF image data, little-endian
119!:mime	image/tiff
120
1210	string		MM\x00\x2b	Big TIFF image data, big-endian
122!:mime	image/tiff
1230	string		II\x2b\x00	Big TIFF image data, little-endian
124!:mime	image/tiff
125
126# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
127# (Greg Roelofs, newt@uchicago.edu)
128# (Albert Cahalan, acahalan@cs.uml.edu)
129#
130# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
131#
1320	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image data
133!:mime	image/png
134>16	belong		x		\b, %d x
135>20	belong		x		%d,
136>24	byte		x		%d-bit
137>25	byte		0		grayscale,
138>25	byte		2		\b/color RGB,
139>25	byte		3		colormap,
140>25	byte		4		gray+alpha,
141>25	byte		6		\b/color RGBA,
142#>26	byte		0		deflate/32K,
143>28	byte		0		non-interlaced
144>28	byte		1		interlaced
145
146# possible GIF replacements; none yet released!
147# (Greg Roelofs, newt@uchicago.edu)
148#
149# GRR 950115:  this was mine ("Zip GIF"):
1500	string		GIF94z		ZIF image (GIF+deflate alpha)
151!:mime	image/x-unknown
152#
153# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
154#
1550	string		FGF95a		FGF image (GIF+deflate beta)
156!:mime	image/x-unknown
157#
158# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
159# (best; not yet implemented):
160#
1610	string		PBF		PBF image (deflate compression)
162!:mime	image/x-unknown
163
164# GIF
1650	string		GIF8		GIF image data
166!:mime	image/gif
167!:apple	8BIMGIFf
168>4	string		7a		\b, version 8%s,
169>4	string		9a		\b, version 8%s,
170>6	leshort		>0		%d x
171>8	leshort		>0		%d
172#>10	byte		&0x80		color mapped,
173#>10	byte&0x07	=0x00		2 colors
174#>10	byte&0x07	=0x01		4 colors
175#>10	byte&0x07	=0x02		8 colors
176#>10	byte&0x07	=0x03		16 colors
177#>10	byte&0x07	=0x04		32 colors
178#>10	byte&0x07	=0x05		64 colors
179#>10	byte&0x07	=0x06		128 colors
180#>10	byte&0x07	=0x07		256 colors
181
182# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
183# 1 plane, no encoding.
1840	string		\361\0\100\273	CMU window manager raster image data
185>4	lelong		>0		%d x
186>8	lelong		>0		%d,
187>12	lelong		>0		%d-bit
188
189# Magick Image File Format
1900	string		id=ImageMagick	MIFF image data
191
192# Artisan
1930	long		1123028772	Artisan image data
194>4	long		1		\b, rectangular 24-bit
195>4	long		2		\b, rectangular 8-bit with colormap
196>4	long		3		\b, rectangular 32-bit (24-bit with matte)
197
198# FIG (Facility for Interactive Generation of figures), an object-based format
1990	search/1	#FIG		FIG image text
200>5	string		x		\b, version %.3s
201
202# PHIGS
2030	string		ARF_BEGARF		PHIGS clear text archive
2040	string		@(#)SunPHIGS		SunPHIGS
205# version number follows, in the form m.n
206>40	string		SunBin			binary
207>32	string		archive			archive
208
209# GKS (Graphics Kernel System)
2100	string		GKSM		GKS Metafile
211>24	string		SunGKS		\b, SunGKS
212
213# CGM image files
2140	string		BEGMF		clear text Computer Graphics Metafile
215
216# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
2170	string	yz	MGR bitmap, modern format, 8-bit aligned
2180	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
2190	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
2200	string	yx	MGR bitmap, modern format, squeezed
221
222# Fuzzy Bitmap (FBM) images
2230	string		%bitmap\0	FBM image data
224>30	long		0x31		\b, mono
225>30	long		0x33		\b, color
226
227# facsimile data
2281	string		PC\ Research,\ Inc	group 3 fax data
229>29	byte		0		\b, normal resolution (204x98 DPI)
230>29	byte		1		\b, fine resolution (204x196 DPI)
231# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
2320	string		Sfff		structured fax file
233
234# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
235# most files with the extension .EPA and some with .BMP
2360	string		\x11\x06	Award BIOS Logo, 136 x 84
237!:mime	image/x-award-bioslogo
2380	string		\x11\x09	Award BIOS Logo, 136 x 126
239!:mime	image/x-award-bioslogo
240#0	string		\x07\x1f	BIOS Logo corrupted?
241# http://www.blackfiveservices.co.uk/awbmtools.shtml
242# http://biosgfx.narod.ru/v3/
243# http://biosgfx.narod.ru/abr-2/
2440	string		AWBM
245>4	leshort		<1981		Award BIOS bitmap
246!:mime	image/x-award-bmp
247# image width is a multiple of 4
248>>4	leshort&0x0003	0
249>>>4		leshort	x		\b, %d
250>>>6		leshort	x		x %d
251>>4	leshort&0x0003	>0		\b,
252>>>4	leshort&0x0003	=1
253>>>>4		leshort	x		%d+3
254>>>4	leshort&0x0003	=2
255>>>>4		leshort	x		%d+2
256>>>4	leshort&0x0003	=3
257>>>>4		leshort	x		%d+1
258>>>6		leshort	x		x %d
259# at offset 8 starts imagedata followed by "RGB " marker
260
261# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
262# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
263# 28bitmap_information_header.29
2640	string		BM
265>14	leshort		12		PC bitmap, OS/2 1.x format
266!:mime	image/x-ms-bmp
267>>18	leshort		x		\b, %d x
268>>20	leshort		x		%d
269>14	leshort		64		PC bitmap, OS/2 2.x format
270!:mime	image/x-ms-bmp
271>>18	leshort		x		\b, %d x
272>>20	leshort		x		%d
273>14	leshort		40		PC bitmap, Windows 3.x format
274!:mime	image/x-ms-bmp
275>>18	lelong		x		\b, %d x
276>>22	lelong		x		%d x
277>>28	leshort		x		%d
278>14	leshort		124		PC bitmap, Windows 98/2000 and newer format
279!:mime	image/x-ms-bmp
280>>18	lelong		x		\b, %d x
281>>22	lelong		x		%d x
282>>28	leshort		x		%d
283>14	leshort		108		PC bitmap, Windows 95/NT4 and newer format
284!:mime	image/x-ms-bmp
285>>18	lelong		x		\b, %d x
286>>22	lelong		x		%d x
287>>28	leshort		x		%d
288>14	leshort		128		PC bitmap, Windows NT/2000 format
289!:mime	image/x-ms-bmp
290>>18	lelong		x		\b, %d x
291>>22	lelong		x		%d x
292>>28	leshort		x		%d
293# Too simple - MPi
294#0	string		IC		PC icon data
295#0	string		PI		PC pointer image data
296#0	string		CI		PC color icon data
297#0	string		CP		PC color pointer image data
298# Conflicts with other entries [BABYL]
299#0	string		BA		PC bitmap array data
300
301# XPM icons (Greg Roelofs, newt@uchicago.edu)
3020	search/1	/*\ XPM\ */	X pixmap image text
303!:mime	image/x-xpmi
304
305# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
3060	leshort		0xcc52		RLE image data,
307>6	leshort		x		%d x
308>8	leshort		x		%d
309>2	leshort		>0		\b, lower left corner: %d
310>4	leshort		>0		\b, lower right corner: %d
311>10	byte&0x1	=0x1		\b, clear first
312>10	byte&0x2	=0x2		\b, no background
313>10	byte&0x4	=0x4		\b, alpha channel
314>10	byte&0x8	=0x8		\b, comment
315>11	byte		>0		\b, %d color channels
316>12	byte		>0		\b, %d bits per pixel
317>13	byte		>0		\b, %d color map channels
318
319# image file format (Robert Potter, potter@cs.rochester.edu)
3200	string		Imagefile\ version-	iff image data
321# this adds the whole header (inc. version number), informative but longish
322>10	string		>\0		%s
323
324# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
3250	belong		0x59a66a95	Sun raster image data
326>4	belong		>0		\b, %d x
327>8	belong		>0		%d,
328>12	belong		>0		%d-bit,
329#>16	belong		>0		%d bytes long,
330>20	belong		0		old format,
331#>20	belong		1		standard,
332>20	belong		2		compressed,
333>20	belong		3		RGB,
334>20	belong		4		TIFF,
335>20	belong		5		IFF,
336>20	belong		0xffff		reserved for testing,
337>24	belong		0		no colormap
338>24	belong		1		RGB colormap
339>24	belong		2		raw colormap
340#>28	belong		>0		colormap is %d bytes long
341
342# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
343#
344# See
345#	http://reality.sgi.com/grafica/sgiimage.html
346#
3470	beshort		474		SGI image data
348#>2	byte		0		\b, verbatim
349>2	byte		1		\b, RLE
350#>3	byte		1		\b, normal precision
351>3	byte		2		\b, high precision
352>4	beshort		x		\b, %d-D
353>6	beshort		x		\b, %d x
354>8	beshort		x		%d
355>10	beshort		x		\b, %d channel
356>10	beshort		!1		\bs
357>80	string		>0		\b, "%s"
358
3590	string		IT01		FIT image data
360>4	belong		x		\b, %d x
361>8	belong		x		%d x
362>12	belong		x		%d
363#
3640	string		IT02		FIT image data
365>4	belong		x		\b, %d x
366>8	belong		x		%d x
367>12	belong		x		%d
368#
3692048	string		PCD_IPI		Kodak Photo CD image pack file
370>0xe02	byte&0x03	0x00		, landscape mode
371>0xe02	byte&0x03	0x01		, portrait mode
372>0xe02	byte&0x03	0x02		, landscape mode
373>0xe02	byte&0x03	0x03		, portrait mode
3740	string		PCD_OPA		Kodak Photo CD overview pack file
375
376# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
377# FITS is the Flexible Image Transport System, the de facto standard for
378# data and image transfer, storage, etc., for the astronomical community.
379# (FITS floating point formats are big-endian.)
3800	string	SIMPLE\ \ =	FITS image data
381>109	string	8		\b, 8-bit, character or unsigned binary integer
382>108	string	16		\b, 16-bit, two's complement binary integer
383>107	string	\ 32		\b, 32-bit, two's complement binary integer
384>107	string	-32		\b, 32-bit, floating point, single precision
385>107	string	-64		\b, 64-bit, floating point, double precision
386
387# other images
3880	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
389
390# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
391# stuff.
392#
3930	beshort		0x1010		PEX Binary Archive
394
395# DICOM medical imaging data
396128	string	DICM			DICOM medical imaging data
397!:mime	application/dicom
398
399# XWD - X Window Dump file.
400#   As described in /usr/X11R6/include/X11/XWDFile.h
401#   used by the xwd program.
402#   Bradford Castalia, idaeim, 1/01
403#   updated by Adam Buchbinder, 2/09
404# The following assumes version 7 of the format; the first long is the length
405# of the header, which is at least 25 4-byte longs, and the one at offset 8
406# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
407# which is a maximum of 32.
4080	belong	>100
409>8	belong	<3
410>>12	belong	<33
411>>>4	belong	7			XWD X Window Dump image data
412!:mime	image/x-xwindowdump
413>>>>100	string	>\0			\b, "%s"
414>>>>16	belong	x			\b, %dx
415>>>>20	belong	x			\b%dx
416>>>>12	belong	x			\b%d
417
418# PDS - Planetary Data System
419#   These files use Parameter Value Language in the header section.
420#   Unfortunately, there is no certain magic, but the following
421#   strings have been found to be most likely.
4220	string	NJPL1I00		PDS (JPL) image data
4232	string	NJPL1I			PDS (JPL) image data
4240	string	CCSD3ZF			PDS (CCSD) image data
4252	string	CCSD3Z			PDS (CCSD) image data
4260	string	PDS_			PDS image data
4270	string	LBLSIZE=		PDS (VICAR) image data
428
429# pM8x: ATARI STAD compressed bitmap format
430#
431# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
432# p M 8 5/6 xx yy zz data...
433# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
434# bytes either run horizontally (pM85) or vertically (pM86). yy is the
435# most frequent byte, xx and zz are runlength escape codes, where xx is
436# used for runs of yy.
437#
4380	string	pM85		Atari ST STAD bitmap image data (hor)
439>5	byte	0x00		(white background)
440>5	byte	0xFF		(black background)
4410	string	pM86		Atari ST STAD bitmap image data (vert)
442>5	byte	0x00		(white background)
443>5	byte	0xFF		(black background)
444
445# Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu
446# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
4470	leshort	0x0296		Atari ATR image
448
449# XXX:
450# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
451# magic.
452# SGI RICE image file <mpruett@sgi.com>
453#0	beshort	0x5249		RICE image
454#>2	beshort	x		v%d
455#>4	beshort	x		(%d x
456#>6	beshort	x		%d)
457#>8	beshort	0		8 bit
458#>8	beshort	1		10 bit
459#>8	beshort	2		12 bit
460#>8	beshort	3		13 bit
461#>10	beshort	0		4:2:2
462#>10	beshort	1		4:2:2:4
463#>10	beshort	2		4:4:4
464#>10	beshort	3		4:4:4:4
465#>12	beshort	1		RGB
466#>12	beshort	2		CCIR601
467#>12	beshort	3		RP175
468#>12	beshort	4		YUV
469
470# PCX image files
471# From: Dan Fandrich <dan@coneharvesters.com>
472# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
473# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
474# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
475# 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
4760	ubelong&0xffF8fe00	0x0a000000
477# for PCX bit depth > 0
478>3	ubyte		>0
479# test for valid versions
480>>1	ubyte		<6
481>>>1	ubyte		!1	PCX
482!:mime	image/x-pcx
483#!:mime	image/pcx
484>>>>1	ubyte		0	ver. 2.5 image data
485>>>>1	ubyte		2	ver. 2.8 image data, with palette
486>>>>1	ubyte		3	ver. 2.8 image data, without palette
487>>>>1	ubyte		4	for Windows image data
488>>>>1	ubyte		5	ver. 3.0 image data
489>>>>4	uleshort	x	bounding box [%d,
490>>>>6	uleshort	x	%d] -
491>>>>8	uleshort	x	[%d,
492>>>>10	uleshort	x	%d],
493>>>>65	ubyte		>1	%d planes each of
494>>>>3	ubyte		x	%d-bit
495>>>>68	byte		1	colour,
496>>>>68	byte		2	grayscale,
497# this should not happen
498>>>>68	default		x	image,
499>>>>12	leshort		>0	%d x
500>>>>>14	uleshort	x	%d dpi,
501>>>>2	byte		0	uncompressed
502>>>>2	byte		1	RLE compressed
503
504# Adobe Photoshop
505# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
5060	string		8BPS Adobe Photoshop Image
507!:mime	image/vnd.adobe.photoshop
508>4   beshort 2 (PSB)
509>18  belong  x \b, %d x
510>14  belong  x %d,
511>24  beshort 0 bitmap
512>24  beshort 1 grayscale
513>>12 beshort 2 with alpha
514>24  beshort 2 indexed
515>24  beshort 3 RGB
516>>12 beshort 4 \bA
517>24  beshort 4 CMYK
518>>12 beshort 5 \bA
519>24  beshort 7 multichannel
520>24  beshort 8 duotone
521>24  beshort 9 lab
522>12  beshort > 1
523>>12  beshort x \b, %dx
524>12  beshort 1 \b,
525>22  beshort x %d-bit channel
526>12  beshort > 1 \bs
527
528# XV thumbnail indicator (ThMO)
5290	string		P7\ 332		XV thumbnail image data
530
531# NITF is defined by United States MIL-STD-2500A
5320	string	NITF	National Imagery Transmission Format
533>25	string	>\0	dated %.14s
534
535# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
5360	belong		0x00010008	GEM Image data
537>12	beshort		x		%d x
538>14	beshort		x		%d,
539>4	beshort		x		%d planes,
540>8	beshort		x		%d x
541>10	beshort		x		%d pixelsize
542
543# GEM Metafile (Wolfram Kleff)
5440	lelong		0x0018FFFF	GEM Metafile data
545>4	leshort		x		version %d
546
547#
548# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
549# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
550#
5510	string	\0\nSMJPEG	SMJPEG
552>8	belong	x		%d.x data
553# According to the specification you could find any number of _TXT
554# headers here, but I can't think of any way of handling that. None of
555# the SMJPEG files I tried it on used this feature. Even if such a
556# file is encountered the output should still be reasonable.
557>16	string	_SND		\b,
558>>24	beshort	>0		%d Hz
559>>26	byte	8		8-bit
560>>26	byte	16		16-bit
561>>28	string	NONE		uncompressed
562# >>28	string	APCM		ADPCM compressed
563>>27	byte	1		mono
564>>28	byte	2		stereo
565# Help! Isn't there any way to avoid writing this part twice?
566>>32	string	_VID		\b,
567# >>>48	string	JFIF		JPEG
568>>>40	belong	>0		%d frames
569>>>44	beshort	>0		(%d x
570>>>46	beshort	>0		%d)
571>16	string	_VID		\b,
572# >>32	string	JFIF		JPEG
573>>24	belong	>0		%d frames
574>>28	beshort	>0		(%d x
575>>30	beshort	>0		%d)
576
5770	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
578
579# "thumbnail file" (icon)
580# descended from "xv", but in use by other applications as well (Wolfram Kleff)
5810       string          P7\ 332         XV "thumbnail file" (icon) data
582
583# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
5840       string          KiSS            KISS/GS
585>4      byte            16              color
586>>5     byte            x               %d bit
587>>8     leshort         x               %d colors
588>>10    leshort         x               %d groups
589>4      byte            32              cell
590>>5     byte            x               %d bit
591>>8     leshort         x               %d x
592>>10    leshort         x               %d
593>>12    leshort         x               +%d
594>>14    leshort         x               +%d
595
596# Webshots (www.webshots.com), by John Harrison
5970       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
598
599# Hercules DASD image files
600# From Jan Jaeger <jj@septa.nl>
6010       string  CKD_P370        Hercules CKD DASD image file
602>8      long    x               \b, %d heads per cylinder
603>12     long    x               \b, track size %d bytes
604>16     byte    x               \b, device type 33%2.2X
605
6060       string  CKD_C370        Hercules compressed CKD DASD image file
607>8      long    x               \b, %d heads per cylinder
608>12     long    x               \b, track size %d bytes
609>16     byte    x               \b, device type 33%2.2X
610
6110       string  CKD_S370        Hercules CKD DASD shadow file
612>8      long    x               \b, %d heads per cylinder
613>12     long    x               \b, track size %d bytes
614>16     byte    x               \b, device type 33%2.2X
615
616# Squeak images and programs - etoffi@softhome.net
6170	string		\146\031\0\0	Squeak image data
6180	search/1	'From\040Squeak	Squeak program text
619
620# partimage: file(1) magic for PartImage files (experimental, incomplete)
621# Author: Hans-Joachim Baader <hjb@pro-linux.de>
6220		string	PaRtImAgE-VoLuMe	PartImage
623>0x0020		string	0.6.1		file version %s
624>>0x0060	lelong	>-1		volume %d
625#>>0x0064 8 byte identifier
626#>>0x007c reserved
627>>0x0200	string	>\0		type %s
628>>0x1400	string	>\0		device %s,
629>>0x1600	string	>\0		original filename %s,
630# Some fields omitted
631>>0x2744	lelong	0		not compressed
632>>0x2744	lelong	1		gzip compressed
633>>0x2744	lelong	2		bzip2 compressed
634>>0x2744	lelong	>2		compressed with unknown algorithm
635>0x0020		string	>0.6.1		file version %s
636>0x0020		string	<0.6.1		file version %s
637
638# DCX is multi-page PCX, using a simple header of up to 1024
639# offsets for the respective PCX components.
640# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
6410	lelong	987654321	DCX multi-page PCX image data
642
643# Simon Walton <simonw@matteworld.com>
644# Kodak Cineon format for scanned negatives
645# http://www.kodak.com/US/en/motion/support/dlad/
6460	lelong  0xd75f2a80	Cineon image data
647>200	belong  >0		\b, %d x
648>204	belong  >0		%d
649
650
651# Bio-Rad .PIC is an image format used by microscope control systems
652# and related image processing software used by biologists.
653# From: Vebjorn Ljosa <vebjorn@ljosa.com>
654# BOOL values are two-byte integers; use them to rule out false positives.
655# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
656# Samples: http://www.loci.wisc.edu/software/sample-data
65714	leshort <2
658>62	leshort <2
659>>54	leshort 12345		Bio-Rad .PIC Image File
660>>>0	leshort >0		%d x
661>>>2	leshort >0		%d,
662>>>4	leshort =1		1 image in file
663>>>4	leshort >1		%d images in file
664
665# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
666# The description of *.mrw format can be found at
667# http://www.dalibor.cz/minolta/raw_file_format.htm
6680	string	\000MRM			Minolta Dimage camera raw image data
669
670# Summary: DjVu image / document
671# Extension: .djvu
672# Reference: http://djvu.org/docs/DjVu3Spec.djvu
673# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
674# Modified by (1): Abel Cheung <abelcheung@gmail.com>
6750	string	AT&TFORM
676>12	string	DJVM		DjVu multiple page document
677!:mime	image/vnd.djvu
678>12	string	DJVU		DjVu image or single page document
679!:mime	image/vnd.djvu
680>12	string	DJVI		DjVu shared document
681!:mime	image/vnd.djvu
682>12	string	THUM		DjVu page thumbnails
683!:mime	image/vnd.djvu
684
685# Originally by Marc Espie
686# Modified by Robert Minsk <robertminsk at yahoo.com>
687# http://www.openexr.com/openexrfilelayout.pdf
6880	lelong		20000630	OpenEXR image data,
689!:mime image/x-exr
690>4	lelong&0x000000ff x		version %d,
691>4	lelong		^0x00000200	storage: scanline
692>4	lelong		&0x00000200	storage: tiled
693>8	search/0x1000	compression\0	\b, compression:
694>>&16	byte		0		none
695>>&16	byte		1		rle
696>>&16	byte		2		zips
697>>&16	byte		3		zip
698>>&16	byte		4		piz
699>>&16	byte		5		pxr24
700>>&16	byte		6		b44
701>>&16	byte		7		b44a
702>>&16	byte		>7		unknown
703>8	 search/0x1000	dataWindow\0	\b, dataWindow:
704>>&10	lelong		x		(%d
705>>&14	lelong		x		%d)-
706>>&18	lelong		x		\b(%d
707>>&22	lelong		x		%d)
708>8	search/0x1000	displayWindow\0	\b, displayWindow:
709>>&10	lelong		x		(%d
710>>&14	lelong		x		%d)-
711>>&18	lelong		x		\b(%d
712>>&22	lelong		x		%d)
713>8	search/0x1000	lineOrder\0	 \b, lineOrder:
714>>&14	byte		0		increasing y
715>>&14	byte		1		decreasing y
716>>&14	byte		2		random y
717>>&14	byte		>2		unknown
718
719# SMPTE Digital Picture Exchange Format, SMPTE DPX
720#
721# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
722# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
723# Robert Minsk <robertminsk at yahoo.com>
7240	string		SDPX	DPX image data, big-endian,
725!:mime image/x-dpx
726>768	beshort		<4
727>>772	belong		x	%dx
728>>776	belong		x	\b%d,
729>768	beshort		>3
730>>776	belong		x	%dx
731>>772	belong		x	\b%d,
732>768	beshort		0	left to right/top to bottom
733>768	beshort		1	right to left/top to bottom
734>768	beshort		2	left to right/bottom to top
735>768	beshort		3	right to left/bottom to top
736>768	beshort		4	top to bottom/left to right
737>768	beshort		5	top to bottom/right to left
738>768	leshort		6	bottom to top/left to right
739>768	leshort		7	bottom to top/right to left
740
741# From: Tom Hilinski <tom.hilinski@comcast.net>
742# http://www.unidata.ucar.edu/packages/netcdf/
7430	string	CDF\001			NetCDF Data Format data
744
745#-----------------------------------------------------------------------
746# Hierarchical Data Format, used to facilitate scientific data exchange
747# specifications at http://hdf.ncsa.uiuc.edu/
7480	belong	0x0e031301	Hierarchical Data Format (version 4) data
749!:mime	application/x-hdf
7500	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) data
751!:mime	application/x-hdf
752512	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 512 bytes user block
753!:mime	application/x-hdf
7541024	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 1k user block
755!:mime	application/x-hdf
7562048	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 2k user block
757!:mime	application/x-hdf
7584096	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 4k user block
759!:mime	application/x-hdf
760
761
762# From: Tobias Burnus <burnus@net-b.de>
763# Xara (for a while: Corel Xara) is a graphic package, see
764# http://www.xara.com/ for Windows and as GPL application for Linux
7650	string	XARA\243\243	Xara graphics file
766
767# http://www.cartesianinc.com/Tech/
7680	string	CPC\262		Cartesian Perceptual Compression image
769!:mime	image/x-cpi
770
771# From Albert Cahalan <acahalan@gmail.com>
772# puredigital used it for the CVS disposable camcorder
773#8       lelong  4       ZBM bitmap image data
774#>4      leshort x       %u x
775#>6      leshort x       %u
776
777# From Albert Cahalan <acahalan@gmail.com>
778# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
7790       string C565     OLPC firmware icon image data
780>4      leshort x       %u x
781>6      leshort x       %u
782
783# Applied Images - Image files from Cytovision
784# Gustavo Junior Alves <gjalves@gjalves.com.br>
7850	string	\xce\xda\xde\xfa	Cytovision Metaphases file
7860	string	\xed\xad\xef\xac	Cytovision Karyotype file
7870	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
7880	string	\xed\xfe\xda\xbe	Cytovision FLEX file
7890	string	\xed\xab\xed\xfe	Cytovision FLEX file
7900	string	\xad\xfd\xea\xad	Cytovision RATS file
791
792# Wavelet Scalar Quantization format used in gray-scale fingerprint images
793# From Tano M Fotang <mfotang@quanteq.com>
7940	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
795
796# Type:		PCO B16 image files
797# URL:		http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
798# From:		Florian Philipp <florian.philipp@binarywings.net>
799# Extension:	.b16
800# Description:	Pixel image format produced by PCO Camware, typically used
801#		together with PCO cameras.
802# Note:		Different versions exist for e.g. 8 bit and 16 bit images.
803#		Documentation is incomplete.
8040	string/b	PCO-	PCO B16 image data
805>12	lelong		x	\b, %dx
806>16	lelong		x	\b%d
807>20	lelong		0	\b, short header
808>20	lelong		-1	\b, extended header
809>>24	lelong		0	\b, grayscale
810>>>36	lelong		0	linear LUT
811>>>36	lelong		1	logarithmic LUT
812>>>28	lelong		x	[%d
813>>>32	lelong		x	\b,%d]
814>>24	lelong		1	\b, color
815>>>64	lelong		0	linear LUT
816>>>64	lelong		1	logarithmic LUT
817>>>40	lelong		x	r[%d
818>>>44	lelong		x	\b,%d]
819>>>48	lelong		x	g[%d
820>>>52	lelong		x	\b,%d]
821>>>56	lelong		x	b[%d
822>>>60	lelong		x	\b,%d]
823
824# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
825# From: Markus Heidelberg <markus.heidelberg at web.de>
8260	string/t	[BitmapInfo2]	Polar Monitor Bitmap text
827!:mime	image/x-polar-monitor-bitmap
828
829# From: Rick Richardson <rickrich@gmail.com>
8300	string	GARMIN\ BITMAP\ 01	Garmin Bitmap file
831
832# Type:	Ulead Photo Explorer5 (.pe5)
833# URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
834# From:	Simon Horman <horms@debian.org>
8350	string	IIO2H			Ulead Photo Explorer5
836
837# Type:	X11 cursor
838# URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
839# From:	Mathias Brodala <info@noctus.net>
8400	string	Xcur			X11 cursor
841
842# Type:	Olympus ORF raw images.
843# URL:	http://libopenraw.freedesktop.org/wiki/Olympus_ORF
844# From:	Adam Buchbinder <adam.buchbinder@gmail.com>
8450	string		MMOR		Olympus ORF raw image data, big-endian
846!:mime	image/x-olympus-orf
8470	string		IIRO		Olympus ORF raw image data, little-endian
848!:mime	image/x-olympus-orf
8490	string		IIRS		Olympus ORF raw image data, little-endian
850!:mime	image/x-olympus-orf
851
852# Type: files used in modern AVCHD camcoders to store clip information
853# Extension: .cpi
854# From: Alexander Danilov <alexander.a.danilov@gmail.com>
8550	string	HDMV0100	AVCHD Clip Information
856
857# From: Adam Buchbinder <adam.buchbinder@gmail.com>
858# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
859# Radiance HDR; usually has .pic or .hdr extension.
8600	string	#?RADIANCE\n	Radiance HDR image data
861#!mime	image/vnd.radiance
862
863# From: Adam Buchbinder <adam.buchbinder@gmail.com>
864# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
865# Used by the pfstools packages. The regex matches for the image size could
866# probably use some work. The MIME type is made up; if there's one in
867# actual common use, it should replace the one below.
8680	string	PFS1\x0a	PFS HDR image data
869#!mime	image/x-pfs
870>1	regex	[0-9]*\ 		\b, %s
871>>1	regex	\ [0-9]{4}		\bx%s
872
873# Type: Foveon X3F
874# URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
875# From: Adam Buchbinder <adam.buchbinder@gmail.com>
876# Note that the MIME type isn't defined anywhere that I can find; if
877# there's a canonical type for this format, it should replace this one.
8780	string	FOVb	Foveon X3F raw image data
879!:mime	image/x-x3f
880>6	leshort	x	\b, version %d.
881>4	leshort	x	\b%d
882>28	lelong	x	\b, %dx
883>32	lelong	x	\b%d
884
885# Paint.NET file
886# From Adam Buchbinder <adam.buchbinder@gmail.com>
8870	string	PDN3	Paint.NET image data
888!:mime	image/x-paintnet
889
890# Not really an image.
891# From: "Tano M. Fotang" <mfotang@quanteq.com>
8920	string	\x46\x4d\x52\x00	ISO/IEC 19794-2 Format Minutiae Record (FMR)
893
894# WEBP https://developers.google.com/speed/webp/docs/riff_container
8950	string	RIFF
896>8	string	WEBP	Web/P image data
897>>4	lelong	x	\b, %d bytes
898