images revision 276415
1
2#------------------------------------------------------------------------------
3# $File: images,v 1.97 2014/12/08 16:06:19 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>0	leshort		0x100
129>>4	lelong		1
130>>>12	use		tiff_entry
131>>>8	lelong		x		\b, width=%d
132>0	leshort		0x101
133>>4	lelong		1
134>>>8	lelong		x		\b, height=%d
135>>>12	use		tiff_entry
136>0	leshort		0x102
137>>8	lelong		x		\b, bps=%d
138>>12	use		tiff_entry
139>0	leshort		0x103
140>>4	lelong		1		\b, compression=
141>>>8	lelong		1		\bnone
142>>>8	lelong		2		\bhuffman
143>>>8	lelong		3		\bbi-level group 3
144>>>8	lelong		4		\bbi-level group 4
145>>>8	lelong		5		\bLZW
146>>>8	lelong		6		\bJPEG (old)
147>>>8	lelong		7		\bJPEG
148>>>8	lelong		8		\bdeflate
149>>>8	lelong		9		\bJBIG, ITU-T T.85
150>>>8	lelong		0xa		\bJBIG, ITU-T T.43
151>>>8	lelong		0x7ffe		\bNeXT RLE 2-bit
152>>>8	lelong		0x8005		\bPackBits (Macintosh RLE)
153>>>8	lelong		0x8029		\bThunderscan RLE
154>>>8	lelong		0x807f		\bRasterPadding (CT or MP)
155>>>8	lelong		0x8080		\bRLE (Line Work)
156>>>8	lelong		0x8081		\bRLE (High-Res Cont-Tone)
157>>>8	lelong		0x8082		\bRLE (Binary Line Work)
158>>>8	lelong		0x80b2		\bDeflate (PKZIP)
159>>>8	lelong		0x80b3		\bKodak DCS
160>>>8	lelong		0x8765		\bJBIG
161>>>8	lelong		0x8798		\bJPEG2000
162>>>8	lelong		0x8799		\bNikon NEF Compressed
163>>>8	default		x	
164>>>>8	lelong		x		\b(unknown 0x%x)
165>>>12	use		tiff_entry
166>0	leshort		0x106		\b, PhotometricIntepretation=
167>>8	lelong		0		\bWhiteIsZero
168>>8	lelong		1		\bBlackIsZero
169>>8	lelong		2		\bRGB
170>>8	lelong		3		\bRGB Palette
171>>8	lelong		4		\bTransparency Mask
172>>8	lelong		5		\bCMYK
173>>8	lelong		6		\bYCbCr
174>>8	lelong		8		\bCIELab
175>>>8	lelong		x		\b(unknown=0x%x)
176>>12	use		tiff_entry
177# FillOrder
178>0	leshort		0x10a
179>>4	lelong		1
180>>>12	use		tiff_entry
181# DocumentName
182>0	leshort		0x10d
183>>(8.l)	string		x		\b, name=%s
184>>>12	use		tiff_entry
185# ImageDescription
186>0	leshort		0x10e
187>>(8.l)	string		x		\b, description=%s
188>>>12	use		tiff_entry
189# StripOffsets
190>0	leshort		0x111
191>>12	use		tiff_entry
192# NewSubFileType
193>0	leshort		0xfe
194>>12	use		tiff_entry
195# Datetime
196>0	leshort		0x132
197>>(8.l)	string		x		\b, datetime=%s
198>>>12	use		tiff_entry
199# HostComputer
200>0	leshort		0x13c
201>>(8.l)	string		x		\b, hostcomputer=%s
202>>>12	use		tiff_entry
203#>0	leshort		x		\b, unknown=0x%x
204
2050	string		MM\x00\x2b	Big TIFF image data, big-endian
206!:mime	image/tiff
2070	string		II\x2b\x00	Big TIFF image data, little-endian
208!:mime	image/tiff
209
210# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
211# (Greg Roelofs, newt@uchicago.edu)
212# (Albert Cahalan, acahalan@cs.uml.edu)
213#
214# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
215#
2160	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image data
217!:mime	image/png
218>16	belong		x		\b, %d x
219>20	belong		x		%d,
220>24	byte		x		%d-bit
221>25	byte		0		grayscale,
222>25	byte		2		\b/color RGB,
223>25	byte		3		colormap,
224>25	byte		4		gray+alpha,
225>25	byte		6		\b/color RGBA,
226#>26	byte		0		deflate/32K,
227>28	byte		0		non-interlaced
228>28	byte		1		interlaced
229
230# possible GIF replacements; none yet released!
231# (Greg Roelofs, newt@uchicago.edu)
232#
233# GRR 950115:  this was mine ("Zip GIF"):
2340	string		GIF94z		ZIF image (GIF+deflate alpha)
235!:mime	image/x-unknown
236#
237# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
238#					
2390	string		FGF95a		FGF image (GIF+deflate beta)
240!:mime	image/x-unknown
241#
242# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
243# (best; not yet implemented):
244#					
2450	string		PBF		PBF image (deflate compression)
246!:mime	image/x-unknown
247
248# GIF
2490	string		GIF8		GIF image data
250!:mime	image/gif
251!:apple	8BIMGIFf
252>4	string		7a		\b, version 8%s,
253>4	string		9a		\b, version 8%s,
254>6	leshort		>0		%d x
255>8	leshort		>0		%d
256#>10	byte		&0x80		color mapped,
257#>10	byte&0x07	=0x00		2 colors
258#>10	byte&0x07	=0x01		4 colors
259#>10	byte&0x07	=0x02		8 colors
260#>10	byte&0x07	=0x03		16 colors
261#>10	byte&0x07	=0x04		32 colors
262#>10	byte&0x07	=0x05		64 colors
263#>10	byte&0x07	=0x06		128 colors
264#>10	byte&0x07	=0x07		256 colors
265
266# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
267# 1 plane, no encoding.
2680	string		\361\0\100\273	CMU window manager raster image data
269>4	lelong		>0		%d x
270>8	lelong		>0		%d,
271>12	lelong		>0		%d-bit
272
273# Magick Image File Format
2740	string		id=ImageMagick	MIFF image data
275
276# Artisan
2770	long		1123028772	Artisan image data
278>4	long		1		\b, rectangular 24-bit
279>4	long		2		\b, rectangular 8-bit with colormap
280>4	long		3		\b, rectangular 32-bit (24-bit with matte)
281
282# FIG (Facility for Interactive Generation of figures), an object-based format
2830	search/1	#FIG		FIG image text
284>5	string		x		\b, version %.3s
285
286# PHIGS
2870	string		ARF_BEGARF		PHIGS clear text archive
2880	string		@(#)SunPHIGS		SunPHIGS
289# version number follows, in the form m.n
290>40	string		SunBin			binary
291>32	string		archive			archive
292
293# GKS (Graphics Kernel System)
2940	string		GKSM		GKS Metafile
295>24	string		SunGKS		\b, SunGKS
296
297# CGM image files
2980	string		BEGMF		clear text Computer Graphics Metafile
299
300# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
3010	string	yz	MGR bitmap, modern format, 8-bit aligned
3020	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
3030	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
3040	string	yx	MGR bitmap, modern format, squeezed
305
306# Fuzzy Bitmap (FBM) images
3070	string		%bitmap\0	FBM image data
308>30	long		0x31		\b, mono
309>30	long		0x33		\b, color
310
311# facsimile data
3121	string		PC\ Research,\ Inc	group 3 fax data
313>29	byte		0		\b, normal resolution (204x98 DPI)
314>29	byte		1		\b, fine resolution (204x196 DPI)
315# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
3160	string		Sfff		structured fax file
317
318# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
319# most files with the extension .EPA and some with .BMP
3200	string		\x11\x06	Award BIOS Logo, 136 x 84
321!:mime	image/x-award-bioslogo
3220	string		\x11\x09	Award BIOS Logo, 136 x 126
323!:mime	image/x-award-bioslogo
324#0	string		\x07\x1f	BIOS Logo corrupted?
325# http://www.blackfiveservices.co.uk/awbmtools.shtml
326# http://biosgfx.narod.ru/v3/
327# http://biosgfx.narod.ru/abr-2/
3280	string		AWBM		
329>4	leshort		<1981		Award BIOS bitmap
330!:mime	image/x-award-bmp
331# image width is a multiple of 4
332>>4	leshort&0x0003	0		
333>>>4		leshort	x		\b, %d
334>>>6		leshort	x		x %d
335>>4	leshort&0x0003	>0		\b,
336>>>4	leshort&0x0003	=1		
337>>>>4		leshort	x		%d+3
338>>>4	leshort&0x0003	=2		
339>>>>4		leshort	x		%d+2
340>>>4	leshort&0x0003	=3		
341>>>>4		leshort	x		%d+1
342>>>6		leshort	x		x %d
343# at offset 8 starts imagedata followed by "RGB " marker
344
345# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
346# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
347# 28bitmap_information_header.29
3480	string		BM
349>14	leshort		12		PC bitmap, OS/2 1.x format
350!:mime	image/x-ms-bmp
351>>18	leshort		x		\b, %d x
352>>20	leshort		x		%d
353>14	leshort		64		PC bitmap, OS/2 2.x format
354!:mime	image/x-ms-bmp
355>>18	leshort		x		\b, %d x
356>>20	leshort		x		%d
357>14	leshort		40		PC bitmap, Windows 3.x format
358!:mime	image/x-ms-bmp
359>>18	lelong		x		\b, %d x
360>>22	lelong		x		%d x
361>>28	leshort		x		%d
362>14	leshort		124		PC bitmap, Windows 98/2000 and newer format
363!:mime	image/x-ms-bmp
364>>18	lelong		x		\b, %d x
365>>22	lelong		x		%d x
366>>28	leshort		x		%d
367>14	leshort		108		PC bitmap, Windows 95/NT4 and newer format
368!:mime	image/x-ms-bmp
369>>18	lelong		x		\b, %d x
370>>22	lelong		x		%d x
371>>28	leshort		x		%d
372>14	leshort		128		PC bitmap, Windows NT/2000 format
373!:mime	image/x-ms-bmp
374>>18	lelong		x		\b, %d x
375>>22	lelong		x		%d x
376>>28	leshort		x		%d
377# Too simple - MPi
378#0	string		IC		PC icon data
379#0	string		PI		PC pointer image data
380#0	string		CI		PC color icon data
381#0	string		CP		PC color pointer image data
382# Conflicts with other entries [BABYL]
383#0	string		BA		PC bitmap array data
384
385# XPM icons (Greg Roelofs, newt@uchicago.edu)
3860	search/1	/*\ XPM\ */	X pixmap image text
387!:mime	image/x-xpmi
388
389# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
3900	leshort		0xcc52		RLE image data,
391>6	leshort		x		%d x
392>8	leshort		x		%d
393>2	leshort		>0		\b, lower left corner: %d
394>4	leshort		>0		\b, lower right corner: %d
395>10	byte&0x1	=0x1		\b, clear first
396>10	byte&0x2	=0x2		\b, no background
397>10	byte&0x4	=0x4		\b, alpha channel
398>10	byte&0x8	=0x8		\b, comment
399>11	byte		>0		\b, %d color channels
400>12	byte		>0		\b, %d bits per pixel
401>13	byte		>0		\b, %d color map channels
402
403# image file format (Robert Potter, potter@cs.rochester.edu)
4040	string		Imagefile\ version-	iff image data
405# this adds the whole header (inc. version number), informative but longish
406>10	string		>\0		%s
407
408# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
4090	belong		0x59a66a95	Sun raster image data
410>4	belong		>0		\b, %d x
411>8	belong		>0		%d,
412>12	belong		>0		%d-bit,
413#>16	belong		>0		%d bytes long,
414>20	belong		0		old format,
415#>20	belong		1		standard,
416>20	belong		2		compressed,
417>20	belong		3		RGB,
418>20	belong		4		TIFF,
419>20	belong		5		IFF,
420>20	belong		0xffff		reserved for testing,
421>24	belong		0		no colormap
422>24	belong		1		RGB colormap
423>24	belong		2		raw colormap
424#>28	belong		>0		colormap is %d bytes long
425
426# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
427#
428# See
429#	http://reality.sgi.com/grafica/sgiimage.html
430#
4310	beshort		474		SGI image data
432#>2	byte		0		\b, verbatim
433>2	byte		1		\b, RLE
434#>3	byte		1		\b, normal precision
435>3	byte		2		\b, high precision
436>4	beshort		x		\b, %d-D
437>6	beshort		x		\b, %d x
438>8	beshort		x		%d
439>10	beshort		x		\b, %d channel
440>10	beshort		!1		\bs
441>80	string		>0		\b, "%s"
442
4430	string		IT01		FIT image data
444>4	belong		x		\b, %d x
445>8	belong		x		%d x
446>12	belong		x		%d
447#
4480	string		IT02		FIT image data
449>4	belong		x		\b, %d x
450>8	belong		x		%d x
451>12	belong		x		%d
452#
4532048	string		PCD_IPI		Kodak Photo CD image pack file
454>0xe02	byte&0x03	0x00		, landscape mode
455>0xe02	byte&0x03	0x01		, portrait mode
456>0xe02	byte&0x03	0x02		, landscape mode
457>0xe02	byte&0x03	0x03		, portrait mode
4580	string		PCD_OPA		Kodak Photo CD overview pack file
459
460# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
461# FITS is the Flexible Image Transport System, the de facto standard for
462# data and image transfer, storage, etc., for the astronomical community.
463# (FITS floating point formats are big-endian.)
4640	string	SIMPLE\ \ =	FITS image data
465>109	string	8		\b, 8-bit, character or unsigned binary integer
466>108	string	16		\b, 16-bit, two's complement binary integer
467>107	string	\ 32		\b, 32-bit, two's complement binary integer
468>107	string	-32		\b, 32-bit, floating point, single precision
469>107	string	-64		\b, 64-bit, floating point, double precision
470
471# other images
4720	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
473
474# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
475# stuff.
476#
4770	beshort		0x1010		PEX Binary Archive
478
479# DICOM medical imaging data
480128	string	DICM			DICOM medical imaging data
481!:mime	application/dicom
482
483# XWD - X Window Dump file.
484#   As described in /usr/X11R6/include/X11/XWDFile.h
485#   used by the xwd program.
486#   Bradford Castalia, idaeim, 1/01
487#   updated by Adam Buchbinder, 2/09
488# The following assumes version 7 of the format; the first long is the length
489# of the header, which is at least 25 4-byte longs, and the one at offset 8
490# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
491# which is a maximum of 32.
4920	belong	>100
493>8	belong	<3
494>>12	belong	<33
495>>>4	belong	7			XWD X Window Dump image data
496!:mime	image/x-xwindowdump
497>>>>100	string	>\0			\b, "%s"
498>>>>16	belong	x			\b, %dx
499>>>>20	belong	x			\b%dx
500>>>>12	belong	x			\b%d
501
502# PDS - Planetary Data System
503#   These files use Parameter Value Language in the header section.
504#   Unfortunately, there is no certain magic, but the following
505#   strings have been found to be most likely.
5060	string	NJPL1I00		PDS (JPL) image data
5072	string	NJPL1I			PDS (JPL) image data
5080	string	CCSD3ZF			PDS (CCSD) image data
5092	string	CCSD3Z			PDS (CCSD) image data
5100	string	PDS_			PDS image data
5110	string	LBLSIZE=		PDS (VICAR) image data
512
513# pM8x: ATARI STAD compressed bitmap format
514#
515# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
516# p M 8 5/6 xx yy zz data...
517# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
518# bytes either run horizontally (pM85) or vertically (pM86). yy is the
519# most frequent byte, xx and zz are runlength escape codes, where xx is
520# used for runs of yy.
521#
5220	string	pM85		Atari ST STAD bitmap image data (hor)
523>5	byte	0x00		(white background)
524>5	byte	0xFF		(black background)
5250	string	pM86		Atari ST STAD bitmap image data (vert)
526>5	byte	0x00		(white background)
527>5	byte	0xFF		(black background)
528
529# Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu
530# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
5310	leshort	0x0296		Atari ATR image
532
533# XXX:
534# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
535# magic.
536# SGI RICE image file <mpruett@sgi.com>
537#0	beshort	0x5249		RICE image
538#>2	beshort	x		v%d
539#>4	beshort	x		(%d x
540#>6	beshort	x		%d)
541#>8	beshort	0		8 bit
542#>8	beshort	1		10 bit
543#>8	beshort	2		12 bit
544#>8	beshort	3		13 bit
545#>10	beshort	0		4:2:2
546#>10	beshort	1		4:2:2:4
547#>10	beshort	2		4:4:4
548#>10	beshort	3		4:4:4:4
549#>12	beshort	1		RGB
550#>12	beshort	2		CCIR601
551#>12	beshort	3		RP175
552#>12	beshort	4		YUV
553
554# PCX image files
555# From: Dan Fandrich <dan@coneharvesters.com>
556# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
557# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
558# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
559# 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
5600	ubelong&0xffF8fe00	0x0a000000	
561# for PCX bit depth > 0 
562>3	ubyte		>0	
563# test for valid versions
564>>1	ubyte		<6	
565>>>1	ubyte		!1	PCX
566!:mime	image/x-pcx
567#!:mime	image/pcx
568>>>>1	ubyte		0	ver. 2.5 image data
569>>>>1	ubyte		2	ver. 2.8 image data, with palette
570>>>>1	ubyte		3	ver. 2.8 image data, without palette
571>>>>1	ubyte		4	for Windows image data
572>>>>1	ubyte		5	ver. 3.0 image data
573>>>>4	uleshort	x	bounding box [%d,
574>>>>6	uleshort	x	%d] -
575>>>>8	uleshort	x	[%d,
576>>>>10	uleshort	x	%d],
577>>>>65	ubyte		>1	%d planes each of
578>>>>3	ubyte		x	%d-bit
579>>>>68	byte		1	colour,
580>>>>68	byte		2	grayscale,
581# this should not happen
582>>>>68	default		x	image,
583>>>>12	leshort		>0	%d x
584>>>>>14	uleshort	x	%d dpi,
585>>>>2	byte		0	uncompressed
586>>>>2	byte		1	RLE compressed
587
588# Adobe Photoshop
589# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
5900	string		8BPS Adobe Photoshop Image
591!:mime	image/vnd.adobe.photoshop
592>4   beshort 2 (PSB)
593>18  belong  x \b, %d x
594>14  belong  x %d,
595>24  beshort 0 bitmap
596>24  beshort 1 grayscale
597>>12 beshort 2 with alpha
598>24  beshort 2 indexed
599>24  beshort 3 RGB
600>>12 beshort 4 \bA
601>24  beshort 4 CMYK
602>>12 beshort 5 \bA
603>24  beshort 7 multichannel
604>24  beshort 8 duotone
605>24  beshort 9 lab
606>12  beshort > 1
607>>12  beshort x \b, %dx
608>12  beshort 1 \b,
609>22  beshort x %d-bit channel
610>12  beshort > 1 \bs
611
612# XV thumbnail indicator (ThMO)
6130	string		P7\ 332		XV thumbnail image data
614
615# NITF is defined by United States MIL-STD-2500A
6160	string	NITF	National Imagery Transmission Format
617>25	string	>\0	dated %.14s
618
619# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
6200	belong		0x00010008	GEM Image data
621>12	beshort		x		%d x
622>14	beshort		x		%d,
623>4	beshort		x		%d planes,
624>8	beshort		x		%d x
625>10	beshort		x		%d pixelsize
626
627# GEM Metafile (Wolfram Kleff)
6280	lelong		0x0018FFFF	GEM Metafile data
629>4	leshort		x		version %d
630
631#
632# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
633# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
634#
6350	string	\0\nSMJPEG	SMJPEG
636>8	belong	x		%d.x data
637# According to the specification you could find any number of _TXT
638# headers here, but I can't think of any way of handling that. None of
639# the SMJPEG files I tried it on used this feature. Even if such a
640# file is encountered the output should still be reasonable.
641>16	string	_SND		\b,
642>>24	beshort	>0		%d Hz
643>>26	byte	8		8-bit
644>>26	byte	16		16-bit
645>>28	string	NONE		uncompressed
646# >>28	string	APCM		ADPCM compressed
647>>27	byte	1		mono
648>>28	byte	2		stereo
649# Help! Isn't there any way to avoid writing this part twice?
650>>32	string	_VID		\b,
651# >>>48	string	JFIF		JPEG
652>>>40	belong	>0		%d frames
653>>>44	beshort	>0		(%d x
654>>>46	beshort	>0		%d)
655>16	string	_VID		\b,
656# >>32	string	JFIF		JPEG
657>>24	belong	>0		%d frames
658>>28	beshort	>0		(%d x
659>>30	beshort	>0		%d)
660
6610	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
662
663# "thumbnail file" (icon)
664# descended from "xv", but in use by other applications as well (Wolfram Kleff)
6650       string          P7\ 332         XV "thumbnail file" (icon) data
666
667# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
6680       string          KiSS            KISS/GS
669>4      byte            16              color
670>>5     byte            x               %d bit
671>>8     leshort         x               %d colors
672>>10    leshort         x               %d groups
673>4      byte            32              cell
674>>5     byte            x               %d bit
675>>8     leshort         x               %d x
676>>10    leshort         x               %d
677>>12    leshort         x               +%d
678>>14    leshort         x               +%d
679
680# Webshots (www.webshots.com), by John Harrison
6810       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
682
683# Hercules DASD image files
684# From Jan Jaeger <jj@septa.nl>
6850       string  CKD_P370        Hercules CKD DASD image file
686>8      long    x               \b, %d heads per cylinder
687>12     long    x               \b, track size %d bytes
688>16     byte    x               \b, device type 33%2.2X
689
6900       string  CKD_C370        Hercules compressed CKD DASD image file
691>8      long    x               \b, %d heads per cylinder
692>12     long    x               \b, track size %d bytes
693>16     byte    x               \b, device type 33%2.2X
694
6950       string  CKD_S370        Hercules CKD DASD shadow file
696>8      long    x               \b, %d heads per cylinder
697>12     long    x               \b, track size %d bytes
698>16     byte    x               \b, device type 33%2.2X
699
700# Squeak images and programs - etoffi@softhome.net
7010	string		\146\031\0\0	Squeak image data
7020	search/1	'From\040Squeak	Squeak program text
703
704# partimage: file(1) magic for PartImage files (experimental, incomplete)
705# Author: Hans-Joachim Baader <hjb@pro-linux.de>
7060		string	PaRtImAgE-VoLuMe	PartImage
707>0x0020		string	0.6.1		file version %s
708>>0x0060	lelong	>-1		volume %d
709#>>0x0064 8 byte identifier
710#>>0x007c reserved
711>>0x0200	string	>\0		type %s
712>>0x1400	string	>\0		device %s,
713>>0x1600	string	>\0		original filename %s,
714# Some fields omitted
715>>0x2744	lelong	0		not compressed
716>>0x2744	lelong	1		gzip compressed
717>>0x2744	lelong	2		bzip2 compressed
718>>0x2744	lelong	>2		compressed with unknown algorithm
719>0x0020		string	>0.6.1		file version %s
720>0x0020		string	<0.6.1		file version %s
721
722# DCX is multi-page PCX, using a simple header of up to 1024
723# offsets for the respective PCX components.
724# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
7250	lelong	987654321	DCX multi-page PCX image data
726
727# Simon Walton <simonw@matteworld.com>
728# Kodak Cineon format for scanned negatives
729# http://www.kodak.com/US/en/motion/support/dlad/
7300	lelong  0xd75f2a80	Cineon image data
731>200	belong  >0		\b, %d x
732>204	belong  >0		%d
733
734
735# Bio-Rad .PIC is an image format used by microscope control systems
736# and related image processing software used by biologists.
737# From: Vebjorn Ljosa <vebjorn@ljosa.com>
738# BOOL values are two-byte integers; use them to rule out false positives.
739# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
740# Samples: http://www.loci.wisc.edu/software/sample-data
74114	leshort <2
742>62	leshort <2
743>>54	leshort 12345		Bio-Rad .PIC Image File
744>>>0	leshort >0		%d x
745>>>2	leshort >0		%d,
746>>>4	leshort =1		1 image in file
747>>>4	leshort >1		%d images in file
748
749# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
750# The description of *.mrw format can be found at
751# http://www.dalibor.cz/minolta/raw_file_format.htm
7520	string	\000MRM			Minolta Dimage camera raw image data
753
754# Summary: DjVu image / document
755# Extension: .djvu
756# Reference: http://djvu.org/docs/DjVu3Spec.djvu
757# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
758# Modified by (1): Abel Cheung <abelcheung@gmail.com>
7590	string	AT&TFORM
760>12	string	DJVM		DjVu multiple page document
761!:mime	image/vnd.djvu
762>12	string	DJVU		DjVu image or single page document
763!:mime	image/vnd.djvu
764>12	string	DJVI		DjVu shared document
765!:mime	image/vnd.djvu
766>12	string	THUM		DjVu page thumbnails
767!:mime	image/vnd.djvu
768
769# Originally by Marc Espie
770# Modified by Robert Minsk <robertminsk at yahoo.com>
771# http://www.openexr.com/openexrfilelayout.pdf
7720	lelong		20000630	OpenEXR image data,
773!:mime image/x-exr
774>4	lelong&0x000000ff x		version %d,
775>4	lelong		^0x00000200	storage: scanline
776>4	lelong		&0x00000200	storage: tiled
777>8	search/0x1000	compression\0	\b, compression:
778>>&16	byte		0		none
779>>&16	byte		1		rle
780>>&16	byte		2		zips
781>>&16	byte		3		zip
782>>&16	byte		4		piz
783>>&16	byte		5		pxr24
784>>&16	byte		6		b44
785>>&16	byte		7		b44a
786>>&16	byte		>7		unknown
787>8	 search/0x1000	dataWindow\0	\b, dataWindow:
788>>&10	lelong		x		(%d
789>>&14	lelong		x		%d)-
790>>&18	lelong		x		\b(%d
791>>&22	lelong		x		%d)
792>8	search/0x1000	displayWindow\0	\b, displayWindow:
793>>&10	lelong		x		(%d
794>>&14	lelong		x		%d)-
795>>&18	lelong		x		\b(%d
796>>&22	lelong		x		%d)
797>8	search/0x1000	lineOrder\0	 \b, lineOrder:
798>>&14	byte		0		increasing y
799>>&14	byte		1		decreasing y
800>>&14	byte		2		random y
801>>&14	byte		>2		unknown
802
803# SMPTE Digital Picture Exchange Format, SMPTE DPX
804#
805# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
806# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
807# Robert Minsk <robertminsk at yahoo.com>
8080	string		SDPX	DPX image data, big-endian,
809!:mime image/x-dpx
810>768	beshort		<4
811>>772	belong		x	%dx
812>>776	belong		x	\b%d,
813>768	beshort		>3
814>>776	belong		x	%dx
815>>772	belong		x	\b%d,
816>768	beshort		0	left to right/top to bottom
817>768	beshort		1	right to left/top to bottom
818>768	beshort		2	left to right/bottom to top
819>768	beshort		3	right to left/bottom to top
820>768	beshort		4	top to bottom/left to right
821>768	beshort		5	top to bottom/right to left
822>768	leshort		6	bottom to top/left to right
823>768	leshort		7	bottom to top/right to left
824
825# From: Tom Hilinski <tom.hilinski@comcast.net>
826# http://www.unidata.ucar.edu/packages/netcdf/
8270	string	CDF\001			NetCDF Data Format data
828
829#-----------------------------------------------------------------------
830# Hierarchical Data Format, used to facilitate scientific data exchange
831# specifications at http://hdf.ncsa.uiuc.edu/
8320	belong	0x0e031301	Hierarchical Data Format (version 4) data
833!:mime	application/x-hdf
8340	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) data
835!:mime	application/x-hdf
836512	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 512 bytes user block
837!:mime	application/x-hdf
8381024	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 1k user block
839!:mime	application/x-hdf
8402048	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 2k user block
841!:mime	application/x-hdf
8424096	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 4k user block
843!:mime	application/x-hdf
844
845
846# From: Tobias Burnus <burnus@net-b.de>
847# Xara (for a while: Corel Xara) is a graphic package, see
848# http://www.xara.com/ for Windows and as GPL application for Linux
8490	string	XARA\243\243	Xara graphics file
850
851# http://www.cartesianinc.com/Tech/
8520	string	CPC\262		Cartesian Perceptual Compression image
853!:mime	image/x-cpi
854
855# From Albert Cahalan <acahalan@gmail.com>
856# puredigital used it for the CVS disposable camcorder
857#8       lelong  4       ZBM bitmap image data
858#>4      leshort x       %u x
859#>6      leshort x       %u
860
861# From Albert Cahalan <acahalan@gmail.com>
862# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
8630       string C565     OLPC firmware icon image data
864>4      leshort x       %u x
865>6      leshort x       %u
866
867# Applied Images - Image files from Cytovision
868# Gustavo Junior Alves <gjalves@gjalves.com.br>
8690	string	\xce\xda\xde\xfa	Cytovision Metaphases file
8700	string	\xed\xad\xef\xac	Cytovision Karyotype file
8710	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
8720	string	\xed\xfe\xda\xbe	Cytovision FLEX file
8730	string	\xed\xab\xed\xfe	Cytovision FLEX file
8740	string	\xad\xfd\xea\xad	Cytovision RATS file
875
876# Wavelet Scalar Quantization format used in gray-scale fingerprint images
877# From Tano M Fotang <mfotang@quanteq.com>
8780	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
879
880# Type:		PCO B16 image files
881# URL:		http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
882# From:		Florian Philipp <florian.philipp@binarywings.net>
883# Extension:	.b16
884# Description:	Pixel image format produced by PCO Camware, typically used
885#		together with PCO cameras.
886# Note:		Different versions exist for e.g. 8 bit and 16 bit images.
887#		Documentation is incomplete.
8880	string/b	PCO-	PCO B16 image data
889>12	lelong		x	\b, %dx
890>16	lelong		x	\b%d
891>20	lelong		0	\b, short header
892>20	lelong		-1	\b, extended header
893>>24	lelong		0	\b, grayscale
894>>>36	lelong		0	linear LUT
895>>>36	lelong		1	logarithmic LUT
896>>>28	lelong		x	[%d
897>>>32	lelong		x	\b,%d]
898>>24	lelong		1	\b, color
899>>>64	lelong		0	linear LUT
900>>>64	lelong		1	logarithmic LUT
901>>>40	lelong		x	r[%d
902>>>44	lelong		x	\b,%d]
903>>>48	lelong		x	g[%d
904>>>52	lelong		x	\b,%d]
905>>>56	lelong		x	b[%d
906>>>60	lelong		x	\b,%d]
907
908# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
909# From: Markus Heidelberg <markus.heidelberg at web.de>
9100	string/t	[BitmapInfo2]	Polar Monitor Bitmap text
911!:mime	image/x-polar-monitor-bitmap
912
913# From: Rick Richardson <rickrich@gmail.com>
9140	string	GARMIN\ BITMAP\ 01	Garmin Bitmap file
915
916# Type:	Ulead Photo Explorer5 (.pe5)
917# URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
918# From:	Simon Horman <horms@debian.org>
9190	string	IIO2H			Ulead Photo Explorer5
920
921# Type:	X11 cursor
922# URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
923# From:	Mathias Brodala <info@noctus.net>
9240	string	Xcur			X11 cursor
925
926# Type:	Olympus ORF raw images.
927# URL:	http://libopenraw.freedesktop.org/wiki/Olympus_ORF
928# From:	Adam Buchbinder <adam.buchbinder@gmail.com>
9290	string		MMOR		Olympus ORF raw image data, big-endian
930!:mime	image/x-olympus-orf
9310	string		IIRO		Olympus ORF raw image data, little-endian
932!:mime	image/x-olympus-orf
9330	string		IIRS		Olympus ORF raw image data, little-endian
934!:mime	image/x-olympus-orf
935
936# Type: files used in modern AVCHD camcoders to store clip information
937# Extension: .cpi
938# From: Alexander Danilov <alexander.a.danilov@gmail.com>
9390	string	HDMV0100	AVCHD Clip Information
940
941# From: Adam Buchbinder <adam.buchbinder@gmail.com>
942# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
943# Radiance HDR; usually has .pic or .hdr extension.
9440	string	#?RADIANCE\n	Radiance HDR image data
945#!mime	image/vnd.radiance
946
947# From: Adam Buchbinder <adam.buchbinder@gmail.com>
948# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
949# Used by the pfstools packages. The regex matches for the image size could
950# probably use some work. The MIME type is made up; if there's one in
951# actual common use, it should replace the one below.
9520	string	PFS1\x0a	PFS HDR image data
953#!mime	image/x-pfs
954>1	regex	[0-9]*\ 		\b, %s
955>>1	regex	\ [0-9]{4}		\bx%s
956
957# Type: Foveon X3F
958# URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
959# From: Adam Buchbinder <adam.buchbinder@gmail.com>
960# Note that the MIME type isn't defined anywhere that I can find; if
961# there's a canonical type for this format, it should replace this one.
9620	string	FOVb	Foveon X3F raw image data
963!:mime	image/x-x3f
964>6	leshort	x	\b, version %d.
965>4	leshort	x	\b%d
966>28	lelong	x	\b, %dx
967>32	lelong	x	\b%d
968
969# Paint.NET file
970# From Adam Buchbinder <adam.buchbinder@gmail.com>
9710	string	PDN3	Paint.NET image data
972!:mime	image/x-paintnet
973
974# Not really an image.
975# From: "Tano M. Fotang" <mfotang@quanteq.com>
9760	string	\x46\x4d\x52\x00	ISO/IEC 19794-2 Format Minutiae Record (FMR)
977
978# WEBP https://developers.google.com/speed/webp/docs/riff_container
979#0	string	RIFF
980#>8	string	WEBP	Web/P image data
981#>>4	lelong	x	\b, %d bytes
982
983# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
984# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
98590	bequad		0x574D50484F544F00	JPEG-XR Image
986>98	byte&0x08	=0x08			\b, hard tiling
987>99	byte&0x80	=0x80			\b, tiling present
988>99	byte&0x40	=0x40			\b, codestream present
989>99	byte&0x38	x			\b, spatial xform=
990>99	byte&0x38	0x00			\bTL
991>99	byte&0x38	0x08			\bBL
992>99	byte&0x38	0x10			\bTR
993>99	byte&0x38	0x18			\bBR
994>99	byte&0x38	0x20			\bBT
995>99	byte&0x38	0x28			\bRB
996>99	byte&0x38	0x30			\bLT
997>99	byte&0x38	0x38			\bLB
998>100	byte&0x80	=0x80			\b, short header
999>>102	beshort+1	x			\b, %d
1000>>104	beshort+1	x			\bx%d
1001>100	byte&0x80	=0x00			\b, long header
1002>>102	belong+1	x			\b, %x
1003>>106	belong+1	x			\bx%x
1004>101	beshort&0xf	x			\b, bitdepth=
1005>>101	beshort&0xf	0x0			\b1-WHITE=1
1006>>101	beshort&0xf	0x1			\b8
1007>>101	beshort&0xf	0x2			\b16
1008>>101	beshort&0xf	0x3			\b16-SIGNED
1009>>101	beshort&0xf	0x4			\b16-FLOAT
1010>>101	beshort&0xf	0x5			\b(reserved 5)
1011>>101	beshort&0xf	0x6			\b32-SIGNED
1012>>101	beshort&0xf	0x7			\b32-FLOAT
1013>>101	beshort&0xf	0x8			\b5
1014>>101	beshort&0xf	0x9			\b10
1015>>101	beshort&0xf	0xa			\b5-6-5
1016>>101	beshort&0xf	0xb			\b(reserved %d)
1017>>101	beshort&0xf	0xc			\b(reserved %d)
1018>>101	beshort&0xf	0xd			\b(reserved %d)
1019>>101	beshort&0xf	0xe			\b(reserved %d)
1020>>101	beshort&0xf	0xf			\b1-BLACK=1
1021>101	beshort&0xf0	x			\b, colorfmt=
1022>>101	beshort&0xf0	0x00			\bYONLY
1023>>101	beshort&0xf0	0x10			\bYUV240
1024>>101	beshort&0xf0	0x20			\bYWV422
1025>>101	beshort&0xf0	0x30			\bYWV444
1026>>101	beshort&0xf0	0x40			\bCMYK
1027>>101	beshort&0xf0	0x50			\bCMYKDIRECT
1028>>101	beshort&0xf0	0x60			\bNCOMPONENT
1029>>101	beshort&0xf0	0x70			\bRGB
1030>>101	beshort&0xf0	0x80			\bRGBE
1031>>101	beshort&0xf0	>0x80			\b(reserved 0x%x)
1032
1033# From: Johan van der Knijff <johan.vanderknijff@kb.nl>
1034#
1035# BPG (Better Portable Graphics) format
1036# http://bellard.org/bpg/
1037# http://fileformats.archiveteam.org/wiki/BPG
1038#
10390	string	\x42\x50\x47\xFB	BPG (Better Portable Graphics)
1040!:mime  image/bpg
1041