xref: /freebsd/contrib/file/magic/Magdir/images (revision 8ef24a0d4b28fe230e20637f56869cc4148cd2ca)
1
2#------------------------------------------------------------------------------
3# $File: images,v 1.116 2016/03/23 15:29:20 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# URL: http://justsolve.archiveteam.org/wiki/TGA
16# Reference: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
17# Update: Joerg Jenderek
18# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
19#	,32 or 33 (both not observed)
20# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
21#	or theoretically 2-128 reserved for use by Truevision or 128-255 may be used for developer applications
22# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
23# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
24# `tgatoppm' recognizes a superset (Index may be anything)
25#
26# test of Color Map Type 0~no 1~color map
27# and Image Type 1 2 3 9 10 11 32 33
28# and Color Map Entry Size 0 15 16 24 32
290	ubequad&0x00FeC400000000C0	0
30# skip more garbage by looking for positive image type
31>2	ubyte			>0
32# skip some compiled terminfo by looking for image type less equal 33
33>>2	ubyte			<34
34# skip arches.3200 , Finder.Root , Slp.1 by looking for low pixel sizes 15 16 24 32
35>>>16	ubyte			<33
36# skip more by looking for pixel size 0Fh 10h 18h 20h
37>>>>16	ubyte&0xC0		0x00
38# skip 260-16.ico by looking for no color map
39>>>>>1	ubyte			0
40# implies no first map entry
41>>>>>>3	uleshort		0
42>>>>>>>0	use		tga-image
43# Color Map
44>>>>>1	ubyte			>0
45>>>>>>0		use		tga-image
46#	display tga bitmap image information
470	name				tga-image
48>2	ubyte		<34		Targa image data
49!:mime	image/x-tga
50!:apple	????TPIC
51# normal extension .tga but some Truevision products used others:
52# tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that)
53!:ext	tga/tpic/icb/vda/vst
54# image type 1 2 3 9 10 11 32 33
55>2	ubyte&0xF7	1		- Map
56>2	ubyte&0xF7	2		- RGB
57# alpha channel
58>>17	ubyte&0x0F	>0		\bA
59>2	ubyte&0xF7	3		- Mono
60# type not found, but by http://www.fileformat.info/format/tga/corion.htm
61# Compressed color-mapped data, using Huffman, Delta, and runlength encoding
62>2	ubyte		32		- Color
63# Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process
64>2	ubyte		33		- Color
65# Color Map Type 0~no 1~color map
66>1	ubyte		1		(
67# first color map entry, 0 normal
68>>3	uleshort	>0		\b%d-
69# color map length 0 2 1dh 3bh d9h 100h
70>>5	uleshort	x		\b%d)
71# 8~run length encoding bit
72>2	ubyte&0x08	8		- RLE
73# gimp can create big pictures!
74>12	uleshort	>0		%d x
75>12	uleshort	=0		65536 x
76# image height. 0 interpreted as 65536
77>14	uleshort	>0		%d
78>14	uleshort	=0		65536
79# Image Pixel Size 15 16 24 32
80>16	ubyte		x		x %d
81# X origin of image. 0 normal
82>8	uleshort	>0		+%d
83# Y origin of image. 0 normal; positive for top
84>10	uleshort	>0		+%d
85# Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction
86>17	ubyte&0x0F	>0		- %d-bit alpha
87# bits 5-4 give direction. normal bottom left
88>17	ubyte		&0x20		- top
89#>17	ubyte		^0x20		- bottom
90>17	ubyte		&0x10		- right
91#>17	ubyte		^0x10		- left
92# some info say other bits 6-7 should be zero
93# but data storage interleave by http://www.fileformat.info/format/tga/corion.htm
94# 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved
95#>17	ubyte&0xC0	0x00		- no interleave
96>17	ubyte&0xC0	0x40		- interleave
97>17	ubyte&0xC0	0x80		- four way interleave
98>17	ubyte&0xC0	0xC0		- reserved
99# positive length implies identification field
100>0	ubyte		>0
101>>18	string		x		"%s"
102# last 18 bytes of newer tga file footer signature
103>18	search/4261301/s	TRUEVISION-XFILE.\0
104# extension area offset if not 0
105>>&-8		ulelong			>0
106# length of the extension area. normal 495 for version 2.0
107>>>(&-4.l)	uleshort		0x01EF
108# AuthorName[41]
109>>>>&0		string			>\0		- author "%-.40s"
110# Comment[324]=4 * 80 null terminated
111>>>>&41		string			>\0		- comment "%-.80s"
112# date
113>>>>&365	ubequad&0xffffFFFFffff0000	!0
114# Day
115>>>>>&-6		uleshort		x		%d
116# Month
117>>>>>&-8		uleshort		x		\b-%d
118# Year
119>>>>>&-4		uleshort		x		\b-%d
120# time
121>>>>&371	ubequad&0xffffFFFFffff0000	!0
122# hour
123>>>>>&-8		uleshort		x		%d
124# minutes
125>>>>>&-6		uleshort		x		\b:%.2d
126# second
127>>>>>&-4		uleshort		x		\b:%.2d
128# JobName[41]
129>>>>&377		string			>\0		- job "%-.40s"
130# JobHour Jobminute Jobsecond
131>>>>&418	ubequad&0xffffFFFFffff0000	!0
132>>>>>&-8		uleshort		x		%d
133>>>>>&-6		uleshort		x		\b:%.2d
134>>>>>&-4		uleshort		x		\b:%.2d
135# SoftwareId[41]
136>>>>&424		string			>\0		- %-.40s
137# SoftwareVersionNumber
138>>>>&424	ubyte				>0
139>>>>>&40		uleshort/100		x		%d
140>>>>>&40		uleshort%100		x		\b.%d
141# VersionLetter
142>>>>>&42		ubyte			>0x20		\b%c
143# KeyColor
144>>>>&468		ulelong			>0		- keycolor 0x%8.8x
145# Denominator of Pixel ratio. 0~no pixel aspect
146>>>>&474	uleshort			>0
147# Numerator
148>>>>>&-4		uleshort		>0		- aspect %d
149>>>>>&-2		uleshort		x		\b/%d
150# Denominator of Gamma ratio. 0~no Gamma value
151>>>>&478	uleshort			>0
152# Numerator
153>>>>>&-4		uleshort		>0		- gamma %d
154>>>>>&-2		uleshort		x		\b/%d
155# ColorOffset
156#>>>>&480	ulelong			x		- col offset 0x%8.8x
157# StampOffset
158#>>>>&484	ulelong			x		- stamp offset 0x%8.8x
159# ScanOffset
160#>>>>&488	ulelong			x		- scan offset 0x%8.8x
161# AttributesType
162#>>>>&492	ubyte			x		- Attributes 0x%x
163## EndOfTGA
164
165# PBMPLUS images
166# The next byte following the magic is always whitespace.
167# strength is changed to try these patterns before "x86 boot sector"
1680	name		netpbm
169>3	regex/s		=[0-9]{1,50}\ [0-9]{1,50}	Netpbm image data
170>>&0	regex		=[0-9]{1,50} 			\b, size = %s x
171>>>&0	regex		=[0-9]{1,50}			\b %s
172
1730	search/1	P1
174>0	use		netpbm
175>>0	string		x	\b, bitmap
176!:strength + 45
177!:mime	image/x-portable-bitmap
178
1790	search/1	P2
180>0	use		netpbm
181>>0	string		x	\b, greymap
182!:strength + 45
183!:mime	image/x-portable-greymap
184
1850	search/1	P3
186>0	use		netpbm
187>>0	string		x	\b, pixmap
188!:strength + 45
189!:mime	image/x-portable-pixmap
190
1910	string		P4
192>0	use		netpbm
193>>0	string		x	\b, rawbits, bitmap
194!:strength + 45
195!:mime	image/x-portable-bitmap
196
1970	string		P5
198>0	use		netpbm
199>>0	string		x	\b, rawbits, greymap
200!:strength + 45
201!:mime	image/x-portable-greymap
202
2030	string		P6
204>0	use		netpbm
205>>0	string		x	\b, rawbits, pixmap
206!:strength + 45
207!:mime	image/x-portable-pixmap
208
2090	string		P7		Netpbm PAM image file
210!:mime	image/x-portable-pixmap
211
212# From: bryanh@giraffe-data.com (Bryan Henderson)
2130	string		\117\072	Solitaire Image Recorder format
214>4	string		\013		MGI Type 11
215>4	string		\021		MGI Type 17
2160	string		.MDA		MicroDesign data
217>21	byte		48		version 2
218>21	byte		51		version 3
2190	string		.MDP		MicroDesign page data
220>21	byte		48		version 2
221>21	byte		51		version 3
222
223# NIFF (Navy Interchange File Format, a modification of TIFF) images
224# [GRR:  this *must* go before TIFF]
2250	string		IIN1		NIFF image data
226!:mime	image/x-niff
227
228# Canon RAW version 1 (CRW) files are a type of Canon Image File Format
229# (CIFF) file. These are apparently all little-endian.
230# From: Adam Buchbinder <adam.buchbinder@gmail.com>
231# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
2320	string		II\x1a\0\0\0HEAPCCDR	Canon CIFF raw image data
233!:mime	image/x-canon-crw
234>16	leshort		x	\b, version %d.
235>14	leshort		x	\b%d
236
237# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
238# number. Put this above the TIFF test to make sure we detect them.
239# These are apparently all little-endian.
240# From: Adam Buchbinder <adam.buchbinder@gmail.com>
241# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
2420	string		II\x2a\0\x10\0\0\0CR	Canon CR2 raw image data
243!:mime	image/x-canon-cr2
244>10	byte		x	\b, version %d.
245>11	byte		x	\b%d
246
247# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
248# The second word of TIFF files is the TIFF version number, 42, which has
249# never changed.  The TIFF specification recommends testing for it.
2500	string		MM\x00\x2a	TIFF image data, big-endian
251!:mime	image/tiff
252>(4.L)	use		\^tiff_ifd
2530	string		II\x2a\x00	TIFF image data, little-endian
254!:mime	image/tiff
255>(4.l)	use		tiff_ifd
256
2570	name		tiff_ifd
258>0	leshort		x		\b, direntries=%d
259>2	use		tiff_entry
260
2610	name		tiff_entry
262# NewSubFileType
263>0	leshort		0xfe
264>>12	use		tiff_entry
265>0	leshort		0x100
266>>4	lelong		1
267>>>12	use		tiff_entry
268>>>8	leshort		x		\b, width=%d
269>0	leshort		0x101
270>>4	lelong		1
271>>>8	leshort		x		\b, height=%d
272>>>12	use		tiff_entry
273>0	leshort		0x102
274>>8	leshort		x		\b, bps=%d
275>>12	use		tiff_entry
276>0	leshort		0x103
277>>4	lelong		1		\b, compression=
278>>>8	leshort		1		\bnone
279>>>8	leshort		2		\bhuffman
280>>>8	leshort		3		\bbi-level group 3
281>>>8	leshort		4		\bbi-level group 4
282>>>8	leshort		5		\bLZW
283>>>8	leshort		6		\bJPEG (old)
284>>>8	leshort		7		\bJPEG
285>>>8	leshort		8		\bdeflate
286>>>8	leshort		9		\bJBIG, ITU-T T.85
287>>>8	leshort		0xa		\bJBIG, ITU-T T.43
288>>>8	leshort		0x7ffe		\bNeXT RLE 2-bit
289>>>8	leshort		0x8005		\bPackBits (Macintosh RLE)
290>>>8	leshort		0x8029		\bThunderscan RLE
291>>>8	leshort		0x807f		\bRasterPadding (CT or MP)
292>>>8	leshort		0x8080		\bRLE (Line Work)
293>>>8	leshort		0x8081		\bRLE (High-Res Cont-Tone)
294>>>8	leshort		0x8082		\bRLE (Binary Line Work)
295>>>8	leshort		0x80b2		\bDeflate (PKZIP)
296>>>8	leshort		0x80b3		\bKodak DCS
297>>>8	leshort		0x8765		\bJBIG
298>>>8	leshort		0x8798		\bJPEG2000
299>>>8	leshort		0x8799		\bNikon NEF Compressed
300>>>8	default		x
301>>>>8	leshort		x		\b(unknown 0x%x)
302>>>12	use		tiff_entry
303>0	leshort		0x106		\b, PhotometricIntepretation=
304>>8	clear		x
305>>8	leshort		0		\bWhiteIsZero
306>>8	leshort		1		\bBlackIsZero
307>>8	leshort		2		\bRGB
308>>8	leshort		3		\bRGB Palette
309>>8	leshort		4		\bTransparency Mask
310>>8	leshort		5		\bCMYK
311>>8	leshort		6		\bYCbCr
312>>8	leshort		8		\bCIELab
313>>8	default		x
314>>>8	leshort		x		\b(unknown=0x%x)
315>>12	use		tiff_entry
316# FillOrder
317>0	leshort		0x10a
318>>4	lelong		1
319>>>12	use		tiff_entry
320# DocumentName
321>0	leshort		0x10d
322>>(8.l)	string		x		\b, name=%s
323>>>12	use		tiff_entry
324# ImageDescription
325>0	leshort		0x10e
326>>(8.l)	string		x		\b, description=%s
327>>>12	use		tiff_entry
328# Make
329>0	leshort		0x10f
330>>(8.l)	string		x		\b, manufacturer=%s
331>>>12	use		tiff_entry
332# Model
333>0	leshort		0x110
334>>(8.l)	string		x		\b, model=%s
335>>>12	use		tiff_entry
336# StripOffsets
337>0	leshort		0x111
338>>12	use		tiff_entry
339# Orientation
340>0	leshort		0x112		\b, orientation=
341>>8	leshort		1		\bupper-left
342>>8	leshort		3		\blower-right
343>>8	leshort		6		\bupper-right
344>>8	leshort		8		\blower-left
345>>8	leshort		9		\bundefined
346>>8	default		x
347>>>8	leshort		x		\b[*%d*]
348>>12	use		tiff_entry
349# XResolution
350>0	leshort		0x11a
351>>8	lelong		x		\b, xresolution=%d
352>>12	use		tiff_entry
353# YResolution
354>0	leshort		0x11b
355>>8	lelong		x		\b, yresolution=%d
356>>12	use		tiff_entry
357# ResolutionUnit
358>0	leshort		0x128
359>>8	leshort		x		\b, resolutionunit=%d
360>>12	use		tiff_entry
361# Software
362>0	leshort		0x131
363>>(8.l)	string		x		\b, software=%s
364>>12	use		tiff_entry
365# Datetime
366>0	leshort		0x132
367>>(8.l)	string		x		\b, datetime=%s
368>>12	use		tiff_entry
369# HostComputer
370>0	leshort		0x13c
371>>(8.l)	string		x		\b, hostcomputer=%s
372>>12	use		tiff_entry
373# WhitePoint
374>0	leshort		0x13e
375>>12	use		tiff_entry
376# PrimaryChromaticities
377>0	leshort		0x13f
378>>12	use		tiff_entry
379# YCbCrCoefficients
380>0	leshort		0x211
381>>12	use		tiff_entry
382# YCbCrPositioning
383>0	leshort		0x213
384>>12	use		tiff_entry
385# ReferenceBlackWhite
386>0	leshort		0x214
387>>12	use		tiff_entry
388# Copyright
389>0	leshort		0x8298
390>>(8.l)	string		x		\b, copyright=%s
391>>12	use		tiff_entry
392# ExifOffset
393>0	leshort		0x8769
394>>12	use		tiff_entry
395# GPS IFD
396>0	leshort		0x8825		\b, GPS-Data
397>>12	use		tiff_entry
398
399#>0	leshort		x		\b, unknown=0x%x
400#>>12	use		tiff_entry
401
4020	string		MM\x00\x2b	Big TIFF image data, big-endian
403!:mime	image/tiff
4040	string		II\x2b\x00	Big TIFF image data, little-endian
405!:mime	image/tiff
406
407# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
408# (Greg Roelofs, newt@uchicago.edu)
409# (Albert Cahalan, acahalan@cs.uml.edu)
410#
411# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
412#
4130	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image data
414!:mime	image/png
415>16	belong		x		\b, %d x
416>20	belong		x		%d,
417>24	byte		x		%d-bit
418>25	byte		0		grayscale,
419>25	byte		2		\b/color RGB,
420>25	byte		3		colormap,
421>25	byte		4		gray+alpha,
422>25	byte		6		\b/color RGBA,
423#>26	byte		0		deflate/32K,
424>28	byte		0		non-interlaced
425>28	byte		1		interlaced
426
427# possible GIF replacements; none yet released!
428# (Greg Roelofs, newt@uchicago.edu)
429#
430# GRR 950115:  this was mine ("Zip GIF"):
4310	string		GIF94z		ZIF image (GIF+deflate alpha)
432!:mime	image/x-unknown
433#
434# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
435#
4360	string		FGF95a		FGF image (GIF+deflate beta)
437!:mime	image/x-unknown
438#
439# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
440# (best; not yet implemented):
441#
4420	string		PBF		PBF image (deflate compression)
443!:mime	image/x-unknown
444
445# GIF
4460	string		GIF8		GIF image data
447!:mime	image/gif
448!:apple	8BIMGIFf
449>4	string		7a		\b, version 8%s,
450>4	string		9a		\b, version 8%s,
451>6	leshort		>0		%d x
452>8	leshort		>0		%d
453#>10	byte		&0x80		color mapped,
454#>10	byte&0x07	=0x00		2 colors
455#>10	byte&0x07	=0x01		4 colors
456#>10	byte&0x07	=0x02		8 colors
457#>10	byte&0x07	=0x03		16 colors
458#>10	byte&0x07	=0x04		32 colors
459#>10	byte&0x07	=0x05		64 colors
460#>10	byte&0x07	=0x06		128 colors
461#>10	byte&0x07	=0x07		256 colors
462
463# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
464# 1 plane, no encoding.
4650	string		\361\0\100\273	CMU window manager raster image data
466>4	lelong		>0		%d x
467>8	lelong		>0		%d,
468>12	lelong		>0		%d-bit
469
470# Magick Image File Format
4710	string		id=ImageMagick	MIFF image data
472
473# Artisan
4740	long		1123028772	Artisan image data
475>4	long		1		\b, rectangular 24-bit
476>4	long		2		\b, rectangular 8-bit with colormap
477>4	long		3		\b, rectangular 32-bit (24-bit with matte)
478
479# FIG (Facility for Interactive Generation of figures), an object-based format
4800	search/1	#FIG		FIG image text
481>5	string		x		\b, version %.3s
482
483# PHIGS
4840	string		ARF_BEGARF		PHIGS clear text archive
4850	string		@(#)SunPHIGS		SunPHIGS
486# version number follows, in the form m.n
487>40	string		SunBin			binary
488>32	string		archive			archive
489
490# GKS (Graphics Kernel System)
4910	string		GKSM		GKS Metafile
492>24	string		SunGKS		\b, SunGKS
493
494# CGM image files
4950	string		BEGMF		clear text Computer Graphics Metafile
496
497# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
4980	string	yz	MGR bitmap, modern format, 8-bit aligned
4990	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
5000	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
5010	string	yx	MGR bitmap, modern format, squeezed
502
503# Fuzzy Bitmap (FBM) images
5040	string		%bitmap\0	FBM image data
505>30	long		0x31		\b, mono
506>30	long		0x33		\b, color
507
508# facsimile data
5091	string		PC\ Research,\ Inc	group 3 fax data
510>29	byte		0		\b, normal resolution (204x98 DPI)
511>29	byte		1		\b, fine resolution (204x196 DPI)
512# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
5130	string		Sfff		structured fax file
514
515# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
516# most files with the extension .EPA and some with .BMP
5170	string		\x11\x06	Award BIOS Logo, 136 x 84
518!:mime	image/x-award-bioslogo
5190	string		\x11\x09	Award BIOS Logo, 136 x 126
520!:mime	image/x-award-bioslogo
521#0	string		\x07\x1f	BIOS Logo corrupted?
522# http://www.blackfiveservices.co.uk/awbmtools.shtml
523# http://biosgfx.narod.ru/v3/
524# http://biosgfx.narod.ru/abr-2/
5250	string		AWBM
526>4	leshort		<1981		Award BIOS bitmap
527!:mime	image/x-award-bmp
528# image width is a multiple of 4
529>>4	leshort&0x0003	0
530>>>4		leshort	x		\b, %d
531>>>6		leshort	x		x %d
532>>4	leshort&0x0003	>0		\b,
533>>>4	leshort&0x0003	=1
534>>>>4		leshort	x		%d+3
535>>>4	leshort&0x0003	=2
536>>>>4		leshort	x		%d+2
537>>>4	leshort&0x0003	=3
538>>>>4		leshort	x		%d+1
539>>>6		leshort	x		x %d
540# at offset 8 starts imagedata followed by "RGB " marker
541
542# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
543# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
544# 28bitmap_information_header.29
5450	string		BM
546>14	leshort		12		PC bitmap, OS/2 1.x format
547!:mime	image/x-ms-bmp
548>>18	leshort		x		\b, %d x
549>>20	leshort		x		%d
550>14	leshort		64		PC bitmap, OS/2 2.x format
551!:mime	image/x-ms-bmp
552>>18	leshort		x		\b, %d x
553>>20	leshort		x		%d
554>14	leshort		40		PC bitmap, Windows 3.x format
555!:mime	image/x-ms-bmp
556>>18	lelong		x		\b, %d x
557>>22	lelong		x		%d x
558>>28	leshort		x		%d
559>14	leshort		124		PC bitmap, Windows 98/2000 and newer format
560!:mime	image/x-ms-bmp
561>>18	lelong		x		\b, %d x
562>>22	lelong		x		%d x
563>>28	leshort		x		%d
564>14	leshort		108		PC bitmap, Windows 95/NT4 and newer format
565!:mime	image/x-ms-bmp
566>>18	lelong		x		\b, %d x
567>>22	lelong		x		%d x
568>>28	leshort		x		%d
569>14	leshort		128		PC bitmap, Windows NT/2000 format
570!:mime	image/x-ms-bmp
571>>18	lelong		x		\b, %d x
572>>22	lelong		x		%d x
573>>28	leshort		x		%d
574# Too simple - MPi
575#0	string		IC		PC icon data
576#0	string		PI		PC pointer image data
577#0	string		CI		PC color icon data
578#0	string		CP		PC color pointer image data
579# Conflicts with other entries [BABYL]
580#0	string		BA		PC bitmap array data
581
582# XPM icons (Greg Roelofs, newt@uchicago.edu)
5830	search/1	/*\ XPM\ */	X pixmap image text
584!:mime	image/x-xpmi
585
586# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
5870	leshort		0xcc52		RLE image data,
588>6	leshort		x		%d x
589>8	leshort		x		%d
590>2	leshort		>0		\b, lower left corner: %d
591>4	leshort		>0		\b, lower right corner: %d
592>10	byte&0x1	=0x1		\b, clear first
593>10	byte&0x2	=0x2		\b, no background
594>10	byte&0x4	=0x4		\b, alpha channel
595>10	byte&0x8	=0x8		\b, comment
596>11	byte		>0		\b, %d color channels
597>12	byte		>0		\b, %d bits per pixel
598>13	byte		>0		\b, %d color map channels
599
600# image file format (Robert Potter, potter@cs.rochester.edu)
6010	string		Imagefile\ version-	iff image data
602# this adds the whole header (inc. version number), informative but longish
603>10	string		>\0		%s
604
605# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
6060	belong		0x59a66a95	Sun raster image data
607>4	belong		>0		\b, %d x
608>8	belong		>0		%d,
609>12	belong		>0		%d-bit,
610#>16	belong		>0		%d bytes long,
611>20	belong		0		old format,
612#>20	belong		1		standard,
613>20	belong		2		compressed,
614>20	belong		3		RGB,
615>20	belong		4		TIFF,
616>20	belong		5		IFF,
617>20	belong		0xffff		reserved for testing,
618>24	belong		0		no colormap
619>24	belong		1		RGB colormap
620>24	belong		2		raw colormap
621#>28	belong		>0		colormap is %d bytes long
622
623# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
624#
625# See
626#	http://reality.sgi.com/grafica/sgiimage.html
627#
6280	beshort		474		SGI image data
629#>2	byte		0		\b, verbatim
630>2	byte		1		\b, RLE
631#>3	byte		1		\b, normal precision
632>3	byte		2		\b, high precision
633>4	beshort		x		\b, %d-D
634>6	beshort		x		\b, %d x
635>8	beshort		x		%d
636>10	beshort		x		\b, %d channel
637>10	beshort		!1		\bs
638>80	string		>0		\b, "%s"
639
6400	string		IT01		FIT image data
641>4	belong		x		\b, %d x
642>8	belong		x		%d x
643>12	belong		x		%d
644#
6450	string		IT02		FIT image data
646>4	belong		x		\b, %d x
647>8	belong		x		%d x
648>12	belong		x		%d
649#
6502048	string		PCD_IPI		Kodak Photo CD image pack file
651>0xe02	byte&0x03	0x00		, landscape mode
652>0xe02	byte&0x03	0x01		, portrait mode
653>0xe02	byte&0x03	0x02		, landscape mode
654>0xe02	byte&0x03	0x03		, portrait mode
6550	string		PCD_OPA		Kodak Photo CD overview pack file
656
657# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
658# FITS is the Flexible Image Transport System, the de facto standard for
659# data and image transfer, storage, etc., for the astronomical community.
660# (FITS floating point formats are big-endian.)
6610	string	SIMPLE\ \ =	FITS image data
662>109	string	8		\b, 8-bit, character or unsigned binary integer
663>108	string	16		\b, 16-bit, two's complement binary integer
664>107	string	\ 32		\b, 32-bit, two's complement binary integer
665>107	string	-32		\b, 32-bit, floating point, single precision
666>107	string	-64		\b, 64-bit, floating point, double precision
667
668# other images
6690	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
670
671# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
672# stuff.
673#
6740	beshort		0x1010		PEX Binary Archive
675
676# DICOM medical imaging data
677# URL:		https://en.wikipedia.org/wiki/DICOM#Data_format
678# Note:		"dcm" is the official file name extension
679# 		XnView mention also "dc3" and "acr" as file name extension
680128	string	DICM			DICOM medical imaging data
681!:mime	application/dicom
682!:ext dcm/dicom/dic
683
684# XWD - X Window Dump file.
685#   As described in /usr/X11R6/include/X11/XWDFile.h
686#   used by the xwd program.
687#   Bradford Castalia, idaeim, 1/01
688#   updated by Adam Buchbinder, 2/09
689# The following assumes version 7 of the format; the first long is the length
690# of the header, which is at least 25 4-byte longs, and the one at offset 8
691# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
692# which is a maximum of 32.
6930	belong	>100
694>8	belong	<3
695>>12	belong	<33
696>>>4	belong	7			XWD X Window Dump image data
697!:mime	image/x-xwindowdump
698>>>>100	string	>\0			\b, "%s"
699>>>>16	belong	x			\b, %dx
700>>>>20	belong	x			\b%dx
701>>>>12	belong	x			\b%d
702
703# PDS - Planetary Data System
704#   These files use Parameter Value Language in the header section.
705#   Unfortunately, there is no certain magic, but the following
706#   strings have been found to be most likely.
7070	string	NJPL1I00		PDS (JPL) image data
7082	string	NJPL1I			PDS (JPL) image data
7090	string	CCSD3ZF			PDS (CCSD) image data
7102	string	CCSD3Z			PDS (CCSD) image data
7110	string	PDS_			PDS image data
7120	string	LBLSIZE=		PDS (VICAR) image data
713
714# pM8x: ATARI STAD compressed bitmap format
715#
716# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
717# p M 8 5/6 xx yy zz data...
718# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
719# bytes either run horizontally (pM85) or vertically (pM86). yy is the
720# most frequent byte, xx and zz are runlength escape codes, where xx is
721# used for runs of yy.
722#
7230	string	pM85		Atari ST STAD bitmap image data (hor)
724>5	byte	0x00		(white background)
725>5	byte	0xFF		(black background)
7260	string	pM86		Atari ST STAD bitmap image data (vert)
727>5	byte	0x00		(white background)
728>5	byte	0xFF		(black background)
729
730# Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu
731# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
7320	leshort	0x0296		Atari ATR image
733
734# XXX:
735# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
736# magic.
737# SGI RICE image file <mpruett@sgi.com>
738#0	beshort	0x5249		RICE image
739#>2	beshort	x		v%d
740#>4	beshort	x		(%d x
741#>6	beshort	x		%d)
742#>8	beshort	0		8 bit
743#>8	beshort	1		10 bit
744#>8	beshort	2		12 bit
745#>8	beshort	3		13 bit
746#>10	beshort	0		4:2:2
747#>10	beshort	1		4:2:2:4
748#>10	beshort	2		4:4:4
749#>10	beshort	3		4:4:4:4
750#>12	beshort	1		RGB
751#>12	beshort	2		CCIR601
752#>12	beshort	3		RP175
753#>12	beshort	4		YUV
754
755# PCX image files
756# From: Dan Fandrich <dan@coneharvesters.com>
757# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
758# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
759# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
760# 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
7610	ubelong&0xffF8fe00	0x0a000000
762# for PCX bit depth > 0
763>3	ubyte		>0
764# test for valid versions
765>>1	ubyte		<6
766>>>1	ubyte		!1	PCX
767!:mime	image/x-pcx
768#!:mime	image/pcx
769>>>>1	ubyte		0	ver. 2.5 image data
770>>>>1	ubyte		2	ver. 2.8 image data, with palette
771>>>>1	ubyte		3	ver. 2.8 image data, without palette
772>>>>1	ubyte		4	for Windows image data
773>>>>1	ubyte		5	ver. 3.0 image data
774>>>>4	uleshort	x	bounding box [%d,
775>>>>6	uleshort	x	%d] -
776>>>>8	uleshort	x	[%d,
777>>>>10	uleshort	x	%d],
778>>>>65	ubyte		>1	%d planes each of
779>>>>3	ubyte		x	%d-bit
780>>>>68	byte		1	colour,
781>>>>68	byte		2	grayscale,
782# this should not happen
783>>>>68	default		x	image,
784>>>>12	leshort		>0	%d x
785>>>>>14	uleshort	x	%d dpi,
786>>>>2	byte		0	uncompressed
787>>>>2	byte		1	RLE compressed
788
789# Adobe Photoshop
790# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
7910	string		8BPS Adobe Photoshop Image
792!:mime	image/vnd.adobe.photoshop
793>4   beshort 2 (PSB)
794>18  belong  x \b, %d x
795>14  belong  x %d,
796>24  beshort 0 bitmap
797>24  beshort 1 grayscale
798>>12 beshort 2 with alpha
799>24  beshort 2 indexed
800>24  beshort 3 RGB
801>>12 beshort 4 \bA
802>24  beshort 4 CMYK
803>>12 beshort 5 \bA
804>24  beshort 7 multichannel
805>24  beshort 8 duotone
806>24  beshort 9 lab
807>12  beshort > 1
808>>12  beshort x \b, %dx
809>12  beshort 1 \b,
810>22  beshort x %d-bit channel
811>12  beshort > 1 \bs
812
813# XV thumbnail indicator (ThMO)
8140	string		P7\ 332		XV thumbnail image data
815
816# NITF is defined by United States MIL-STD-2500A
8170	string	NITF	National Imagery Transmission Format
818>25	string	>\0	dated %.14s
819
820# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
821# Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de>
822# Update: Joerg Jenderek
823# See http://fileformats.archiveteam.org/wiki/GEM_Raster
824# For variations, also see:
825#    http://www.seasip.info/Gem/ff_img.html (Ventura)
826#    http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT)
827#    http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT)
828#    http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG)
8290       beshort     0x0001
830# header_size
831>2      beshort     0x0008
832>>0     use gem_info
833>2      beshort     0x0009
834>>0     use gem_info
835# no example for NOSIG
836>2      beshort     24
837>>0     use gem_info
838# no example for HYPERPAINT
839>2      beshort     25
840>>0     use gem_info
84116      string      XIMG\0
842>0      use gem_info
843# no example
84416      string      STTT\0\x10
845>0      use gem_info
846# no example or description
84716      string      TIMG\0
848>0      use gem_info
849
8500   name        gem_info
851# version is 2 for some XIMG and 1 for all others
852>0	beshort		<0x0003		GEM
853# http://www.snowstone.org.uk/riscos/mimeman/mimemap.txt
854!:mime	image/x-gem
855# header_size 24 25 27 59 779 words for colored bitmaps
856>>2	beshort		>9
857>>>16	string		STTT\0\x10	STTT
858>>>16	string		TIMG\0		TIMG
859# HYPERPAINT or NOSIG variant
860>>>16	string		\0\x80
861>>>>2	beshort		=24		NOSIG
862>>>>2	beshort		!24		HYPERPAINT
863# NOSIG or XIMG variant
864>>>16	default		x
865>>>>16	string		!XIMG\0		NOSIG
866>>16	string		=XIMG\0		XIMG Image data
867!:ext	img/ximg
868# to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type
869>>16	string		!XIMG\0		Image data
870!:ext	img
871# header_size is 9 for Ventura files and 8 for other GEM Paint files
872>>2	beshort		9		(Ventura)
873#>>2	beshort		8		(Paint)
874>>12	beshort		x		%d x
875>>14	beshort		x		%d,
876# 1 4 8
877>>4	beshort		x		%d planes,
878# in tenths of a millimetre
879>>8	beshort		x		%d x
880>>10	beshort		x		%d pixelsize
881# pattern_size 1-8. 2 for GEM Paint
882>>6	beshort		!2		\b, pattern size %d
883
884# GEM Metafile (Wolfram Kleff)
8850	lelong		0x0018FFFF	GEM Metafile data
886>4	leshort		x		version %d
887
888#
889# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
890# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
891#
8920	string	\0\nSMJPEG	SMJPEG
893>8	belong	x		%d.x data
894# According to the specification you could find any number of _TXT
895# headers here, but I can't think of any way of handling that. None of
896# the SMJPEG files I tried it on used this feature. Even if such a
897# file is encountered the output should still be reasonable.
898>16	string	_SND		\b,
899>>24	beshort	>0		%d Hz
900>>26	byte	8		8-bit
901>>26	byte	16		16-bit
902>>28	string	NONE		uncompressed
903# >>28	string	APCM		ADPCM compressed
904>>27	byte	1		mono
905>>28	byte	2		stereo
906# Help! Isn't there any way to avoid writing this part twice?
907>>32	string	_VID		\b,
908# >>>48	string	JFIF		JPEG
909>>>40	belong	>0		%d frames
910>>>44	beshort	>0		(%d x
911>>>46	beshort	>0		%d)
912>16	string	_VID		\b,
913# >>32	string	JFIF		JPEG
914>>24	belong	>0		%d frames
915>>28	beshort	>0		(%d x
916>>30	beshort	>0		%d)
917
9180	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
919
920# "thumbnail file" (icon)
921# descended from "xv", but in use by other applications as well (Wolfram Kleff)
9220       string          P7\ 332         XV "thumbnail file" (icon) data
923
924# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
9250       string          KiSS            KISS/GS
926>4      byte            16              color
927>>5     byte            x               %d bit
928>>8     leshort         x               %d colors
929>>10    leshort         x               %d groups
930>4      byte            32              cell
931>>5     byte            x               %d bit
932>>8     leshort         x               %d x
933>>10    leshort         x               %d
934>>12    leshort         x               +%d
935>>14    leshort         x               +%d
936
937# Webshots (www.webshots.com), by John Harrison
9380       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
939
940# Hercules DASD image files
941# From Jan Jaeger <jj@septa.nl>
9420       string  CKD_P370        Hercules CKD DASD image file
943>8      long    x               \b, %d heads per cylinder
944>12     long    x               \b, track size %d bytes
945>16     byte    x               \b, device type 33%2.2X
946
9470       string  CKD_C370        Hercules compressed CKD DASD image file
948>8      long    x               \b, %d heads per cylinder
949>12     long    x               \b, track size %d bytes
950>16     byte    x               \b, device type 33%2.2X
951
9520       string  CKD_S370        Hercules CKD DASD shadow file
953>8      long    x               \b, %d heads per cylinder
954>12     long    x               \b, track size %d bytes
955>16     byte    x               \b, device type 33%2.2X
956
957# Squeak images and programs - etoffi@softhome.net
9580	string		\146\031\0\0	Squeak image data
9590	search/1	'From\040Squeak	Squeak program text
960
961# partimage: file(1) magic for PartImage files (experimental, incomplete)
962# Author: Hans-Joachim Baader <hjb@pro-linux.de>
9630		string	PaRtImAgE-VoLuMe	PartImage
964>0x0020		string	0.6.1		file version %s
965>>0x0060	lelong	>-1		volume %d
966#>>0x0064 8 byte identifier
967#>>0x007c reserved
968>>0x0200	string	>\0		type %s
969>>0x1400	string	>\0		device %s,
970>>0x1600	string	>\0		original filename %s,
971# Some fields omitted
972>>0x2744	lelong	0		not compressed
973>>0x2744	lelong	1		gzip compressed
974>>0x2744	lelong	2		bzip2 compressed
975>>0x2744	lelong	>2		compressed with unknown algorithm
976>0x0020		string	>0.6.1		file version %s
977>0x0020		string	<0.6.1		file version %s
978
979# DCX is multi-page PCX, using a simple header of up to 1024
980# offsets for the respective PCX components.
981# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
9820	lelong	987654321	DCX multi-page PCX image data
983
984# Simon Walton <simonw@matteworld.com>
985# Kodak Cineon format for scanned negatives
986# http://www.kodak.com/US/en/motion/support/dlad/
9870	lelong  0xd75f2a80	Cineon image data
988>200	belong  >0		\b, %d x
989>204	belong  >0		%d
990
991
992# Bio-Rad .PIC is an image format used by microscope control systems
993# and related image processing software used by biologists.
994# From: Vebjorn Ljosa <vebjorn@ljosa.com>
995# BOOL values are two-byte integers; use them to rule out false positives.
996# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
997# Samples: http://www.loci.wisc.edu/software/sample-data
99814	leshort <2
999>62	leshort <2
1000>>54	leshort 12345		Bio-Rad .PIC Image File
1001>>>0	leshort >0		%d x
1002>>>2	leshort >0		%d,
1003>>>4	leshort =1		1 image in file
1004>>>4	leshort >1		%d images in file
1005
1006# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
1007# The description of *.mrw format can be found at
1008# http://www.dalibor.cz/minolta/raw_file_format.htm
10090	string	\000MRM			Minolta Dimage camera raw image data
1010
1011# Summary: DjVu image / document
1012# Extension: .djvu
1013# Reference: http://djvu.org/docs/DjVu3Spec.djvu
1014# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
1015# Modified by (1): Abel Cheung <abelcheung@gmail.com>
10160	string	AT&TFORM
1017>12	string	DJVM		DjVu multiple page document
1018!:mime	image/vnd.djvu
1019>12	string	DJVU		DjVu image or single page document
1020!:mime	image/vnd.djvu
1021>12	string	DJVI		DjVu shared document
1022!:mime	image/vnd.djvu
1023>12	string	THUM		DjVu page thumbnails
1024!:mime	image/vnd.djvu
1025
1026# Originally by Marc Espie
1027# Modified by Robert Minsk <robertminsk at yahoo.com>
1028# http://www.openexr.com/openexrfilelayout.pdf
10290	lelong		20000630	OpenEXR image data,
1030!:mime image/x-exr
1031>4	lelong&0x000000ff x		version %d,
1032>4	lelong		^0x00000200	storage: scanline
1033>4	lelong		&0x00000200	storage: tiled
1034>8	search/0x1000	compression\0	\b, compression:
1035>>&16	byte		0		none
1036>>&16	byte		1		rle
1037>>&16	byte		2		zips
1038>>&16	byte		3		zip
1039>>&16	byte		4		piz
1040>>&16	byte		5		pxr24
1041>>&16	byte		6		b44
1042>>&16	byte		7		b44a
1043>>&16	byte		>7		unknown
1044>8	 search/0x1000	dataWindow\0	\b, dataWindow:
1045>>&10	lelong		x		(%d
1046>>&14	lelong		x		%d)-
1047>>&18	lelong		x		\b(%d
1048>>&22	lelong		x		%d)
1049>8	search/0x1000	displayWindow\0	\b, displayWindow:
1050>>&10	lelong		x		(%d
1051>>&14	lelong		x		%d)-
1052>>&18	lelong		x		\b(%d
1053>>&22	lelong		x		%d)
1054>8	search/0x1000	lineOrder\0	 \b, lineOrder:
1055>>&14	byte		0		increasing y
1056>>&14	byte		1		decreasing y
1057>>&14	byte		2		random y
1058>>&14	byte		>2		unknown
1059
1060# SMPTE Digital Picture Exchange Format, SMPTE DPX
1061#
1062# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
1063# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
1064# Robert Minsk <robertminsk at yahoo.com>
10650	string		SDPX	DPX image data, big-endian,
1066!:mime image/x-dpx
1067>768	beshort		<4
1068>>772	belong		x	%dx
1069>>776	belong		x	\b%d,
1070>768	beshort		>3
1071>>776	belong		x	%dx
1072>>772	belong		x	\b%d,
1073>768	beshort		0	left to right/top to bottom
1074>768	beshort		1	right to left/top to bottom
1075>768	beshort		2	left to right/bottom to top
1076>768	beshort		3	right to left/bottom to top
1077>768	beshort		4	top to bottom/left to right
1078>768	beshort		5	top to bottom/right to left
1079>768	leshort		6	bottom to top/left to right
1080>768	leshort		7	bottom to top/right to left
1081
1082# From: Tom Hilinski <tom.hilinski@comcast.net>
1083# http://www.unidata.ucar.edu/packages/netcdf/
10840	string	CDF\001			NetCDF Data Format data
1085
1086#-----------------------------------------------------------------------
1087# Hierarchical Data Format, used to facilitate scientific data exchange
1088# specifications at http://hdf.ncsa.uiuc.edu/
10890	belong	0x0e031301	Hierarchical Data Format (version 4) data
1090!:mime	application/x-hdf
10910	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) data
1092!:mime	application/x-hdf
1093512	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 512 bytes user block
1094!:mime	application/x-hdf
10951024	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 1k user block
1096!:mime	application/x-hdf
10972048	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 2k user block
1098!:mime	application/x-hdf
10994096	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 4k user block
1100!:mime	application/x-hdf
1101
1102
1103# From: Tobias Burnus <burnus@net-b.de>
1104# Xara (for a while: Corel Xara) is a graphic package, see
1105# http://www.xara.com/ for Windows and as GPL application for Linux
11060	string	XARA\243\243	Xara graphics file
1107
1108# http://www.cartesianinc.com/Tech/
11090	string	CPC\262		Cartesian Perceptual Compression image
1110!:mime	image/x-cpi
1111
1112# From Albert Cahalan <acahalan@gmail.com>
1113# puredigital used it for the CVS disposable camcorder
1114#8       lelong  4       ZBM bitmap image data
1115#>4      leshort x       %u x
1116#>6      leshort x       %u
1117
1118# From Albert Cahalan <acahalan@gmail.com>
1119# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
11200       string C565     OLPC firmware icon image data
1121>4      leshort x       %u x
1122>6      leshort x       %u
1123
1124# Applied Images - Image files from Cytovision
1125# Gustavo Junior Alves <gjalves@gjalves.com.br>
11260	string	\xce\xda\xde\xfa	Cytovision Metaphases file
11270	string	\xed\xad\xef\xac	Cytovision Karyotype file
11280	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
11290	string	\xed\xfe\xda\xbe	Cytovision FLEX file
11300	string	\xed\xab\xed\xfe	Cytovision FLEX file
11310	string	\xad\xfd\xea\xad	Cytovision RATS file
1132
1133# Wavelet Scalar Quantization format used in gray-scale fingerprint images
1134# From Tano M Fotang <mfotang@quanteq.com>
11350	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
1136
1137# Type:		PCO B16 image files
1138# URL:		http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
1139# From:		Florian Philipp <florian.philipp@binarywings.net>
1140# Extension:	.b16
1141# Description:	Pixel image format produced by PCO Camware, typically used
1142#		together with PCO cameras.
1143# Note:		Different versions exist for e.g. 8 bit and 16 bit images.
1144#		Documentation is incomplete.
11450	string/b	PCO-	PCO B16 image data
1146>12	lelong		x	\b, %dx
1147>16	lelong		x	\b%d
1148>20	lelong		0	\b, short header
1149>20	lelong		-1	\b, extended header
1150>>24	lelong		0	\b, grayscale
1151>>>36	lelong		0	linear LUT
1152>>>36	lelong		1	logarithmic LUT
1153>>>28	lelong		x	[%d
1154>>>32	lelong		x	\b,%d]
1155>>24	lelong		1	\b, color
1156>>>64	lelong		0	linear LUT
1157>>>64	lelong		1	logarithmic LUT
1158>>>40	lelong		x	r[%d
1159>>>44	lelong		x	\b,%d]
1160>>>48	lelong		x	g[%d
1161>>>52	lelong		x	\b,%d]
1162>>>56	lelong		x	b[%d
1163>>>60	lelong		x	\b,%d]
1164
1165# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
1166# From: Markus Heidelberg <markus.heidelberg at web.de>
11670	string/t	[BitmapInfo2]	Polar Monitor Bitmap text
1168!:mime	image/x-polar-monitor-bitmap
1169
1170# From: Rick Richardson <rickrich@gmail.com>
1171# updated by: Joerg Jenderek
1172# URL: http://techmods.net/nuvi/
11730	string	GARMIN\ BITMAP\ 01	Garmin Bitmap file
1174# extension is also used for
1175# Sony SRF raw image (image/x-sony-srf)
1176# SRF map
1177# Terragen Surface Map (http://www.planetside.co.uk/terragen)
1178# FileLocator Pro search criteria file (http://www.mythicsoft.com/filelocatorpro)
1179!:ext srf
1180#!:mime	image/x-garmin-srf
1181# version 1.00,2.00,2.10,2.40,2.50
1182>0x2f	string		>0		\b, version %4.4s
1183# width (2880,2881,3240)
1184>0x55	uleshort	>0		\b, %dx
1185# height (80,90)
1186>>0x53	uleshort	x		\b%d
1187
1188# Type:	Ulead Photo Explorer5 (.pe5)
1189# URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
1190# From:	Simon Horman <horms@debian.org>
11910	string	IIO2H			Ulead Photo Explorer5
1192
1193# Type:	X11 cursor
1194# URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
1195# From:	Mathias Brodala <info@noctus.net>
11960	string	Xcur			X11 cursor
1197
1198# Type:	Olympus ORF raw images.
1199# URL:	http://libopenraw.freedesktop.org/wiki/Olympus_ORF
1200# From:	Adam Buchbinder <adam.buchbinder@gmail.com>
12010	string		MMOR		Olympus ORF raw image data, big-endian
1202!:mime	image/x-olympus-orf
12030	string		IIRO		Olympus ORF raw image data, little-endian
1204!:mime	image/x-olympus-orf
12050	string		IIRS		Olympus ORF raw image data, little-endian
1206!:mime	image/x-olympus-orf
1207
1208# Type: files used in modern AVCHD camcoders to store clip information
1209# Extension: .cpi
1210# From: Alexander Danilov <alexander.a.danilov@gmail.com>
12110	string	HDMV0100	AVCHD Clip Information
1212
1213# From: Adam Buchbinder <adam.buchbinder@gmail.com>
1214# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
1215# Radiance HDR; usually has .pic or .hdr extension.
12160	string	#?RADIANCE\n	Radiance HDR image data
1217#!mime	image/vnd.radiance
1218
1219# From: Adam Buchbinder <adam.buchbinder@gmail.com>
1220# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
1221# Used by the pfstools packages. The regex matches for the image size could
1222# probably use some work. The MIME type is made up; if there's one in
1223# actual common use, it should replace the one below.
12240	string	PFS1\x0a	PFS HDR image data
1225#!mime	image/x-pfs
1226>1	regex	[0-9]*\ 		\b, %s
1227>>1	regex	\ [0-9]{4}		\bx%s
1228
1229# Type: Foveon X3F
1230# URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
1231# From: Adam Buchbinder <adam.buchbinder@gmail.com>
1232# Note that the MIME type isn't defined anywhere that I can find; if
1233# there's a canonical type for this format, it should replace this one.
12340	string	FOVb	Foveon X3F raw image data
1235!:mime	image/x-x3f
1236>6	leshort	x	\b, version %d.
1237>4	leshort	x	\b%d
1238>28	lelong	x	\b, %dx
1239>32	lelong	x	\b%d
1240
1241# Paint.NET file
1242# From Adam Buchbinder <adam.buchbinder@gmail.com>
12430	string	PDN3	Paint.NET image data
1244!:mime	image/x-paintnet
1245
1246# Not really an image.
1247# From: "Tano M. Fotang" <mfotang@quanteq.com>
12480	string	\x46\x4d\x52\x00	ISO/IEC 19794-2 Format Minutiae Record (FMR)
1249
1250# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
1251# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
125290	bequad		0x574D50484F544F00	JPEG-XR Image
1253>98	byte&0x08	=0x08			\b, hard tiling
1254>99	byte&0x80	=0x80			\b, tiling present
1255>99	byte&0x40	=0x40			\b, codestream present
1256>99	byte&0x38	x			\b, spatial xform=
1257>99	byte&0x38	0x00			\bTL
1258>99	byte&0x38	0x08			\bBL
1259>99	byte&0x38	0x10			\bTR
1260>99	byte&0x38	0x18			\bBR
1261>99	byte&0x38	0x20			\bBT
1262>99	byte&0x38	0x28			\bRB
1263>99	byte&0x38	0x30			\bLT
1264>99	byte&0x38	0x38			\bLB
1265>100	byte&0x80	=0x80			\b, short header
1266>>102	beshort+1	x			\b, %d
1267>>104	beshort+1	x			\bx%d
1268>100	byte&0x80	=0x00			\b, long header
1269>>102	belong+1	x			\b, %x
1270>>106	belong+1	x			\bx%x
1271>101	beshort&0xf	x			\b, bitdepth=
1272>>101	beshort&0xf	0x0			\b1-WHITE=1
1273>>101	beshort&0xf	0x1			\b8
1274>>101	beshort&0xf	0x2			\b16
1275>>101	beshort&0xf	0x3			\b16-SIGNED
1276>>101	beshort&0xf	0x4			\b16-FLOAT
1277>>101	beshort&0xf	0x5			\b(reserved 5)
1278>>101	beshort&0xf	0x6			\b32-SIGNED
1279>>101	beshort&0xf	0x7			\b32-FLOAT
1280>>101	beshort&0xf	0x8			\b5
1281>>101	beshort&0xf	0x9			\b10
1282>>101	beshort&0xf	0xa			\b5-6-5
1283>>101	beshort&0xf	0xb			\b(reserved %d)
1284>>101	beshort&0xf	0xc			\b(reserved %d)
1285>>101	beshort&0xf	0xd			\b(reserved %d)
1286>>101	beshort&0xf	0xe			\b(reserved %d)
1287>>101	beshort&0xf	0xf			\b1-BLACK=1
1288>101	beshort&0xf0	x			\b, colorfmt=
1289>>101	beshort&0xf0	0x00			\bYONLY
1290>>101	beshort&0xf0	0x10			\bYUV240
1291>>101	beshort&0xf0	0x20			\bYWV422
1292>>101	beshort&0xf0	0x30			\bYWV444
1293>>101	beshort&0xf0	0x40			\bCMYK
1294>>101	beshort&0xf0	0x50			\bCMYKDIRECT
1295>>101	beshort&0xf0	0x60			\bNCOMPONENT
1296>>101	beshort&0xf0	0x70			\bRGB
1297>>101	beshort&0xf0	0x80			\bRGBE
1298>>101	beshort&0xf0	>0x80			\b(reserved 0x%x)
1299
1300# From: Johan van der Knijff <johan.vanderknijff@kb.nl>
1301#
1302# BPG (Better Portable Graphics) format
1303# http://bellard.org/bpg/
1304# http://fileformats.archiveteam.org/wiki/BPG
1305#
13060	string	\x42\x50\x47\xFB	BPG (Better Portable Graphics)
1307!:mime  image/bpg
1308
1309# From: Joerg Jenderek
1310# URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format
13110	string		icns		Mac OS X icon
1312!:mime	image/x-icns
1313!:apple	????icns
1314!:ext icns
1315>4	ubelong		>0
1316# file size
1317>>4	ubelong		x		\b, %d bytes
1318# icon type
1319>>8	string		x		\b, "%4.4s" type
1320
1321# TIM images
13220		lelong		0x00000010	TIM image,
1323>4		lelong  	0x8		4-Bit,
1324>4		lelong  	0x9		8-Bit,
1325>4		lelong  	0x2		15-Bit,
1326>4		lelong  	0x3		24-Bit,
1327>4		lelong 		&8
1328>>(8.l+12)	leshort		x		Pixel at (%d,
1329>>(8.l+14)	leshort		x		\b%d)
1330>>(8.l+16)	leshort		x		Size=%dx
1331>>(8.l+18)	leshort		x		\b%d,
1332>>4		lelong 		0x8		16 CLUT Entries at
1333>>4		lelong 		0x9		256 CLUT Entries at
1334>>12		leshort		x		(%d,
1335>>14		leshort		x		\b%d)
1336>4		lelong		^8
1337>>12		leshort		x		Pixel at (%d,
1338>>14		leshort		x		\b%d)
1339>>16		leshort		x		Size=%dx
1340>>18		leshort		x		\b%d
1341
1342# MDEC streams
13430		lelong		0x80010160	MDEC video stream,
1344>16		leshort		x		%dx
1345>18		leshort		x		\b%d
1346#>8		lelong		x		%d frames
1347#>4		leshort		x		secCount=%d;
1348#>6		leshort		x		nSectors=%d;
1349#>12		lelong		x		frameSize=%d;
1350
1351# BS encoded bitstreams
13522		leshort		0x3800		BS image,
1353>6		leshort		x		Version %d,
1354>4		leshort		x		Quantization %d,
1355>0		leshort		x		(Decompresses to %d words)
1356
1357# Type: farbfeld image.
1358# Url: http://tools.suckless.org/farbfeld/
1359# From: Ian D. Scott <ian@iandouglasscott.com>
1360#
13610		string		farbfeld	farbfeld image data,
1362>8		ubelong		x		%dx
1363>12		ubelong		x		\b%d
1364
1365# Type: Sega PVR image.
1366# From: David Korth <gerbilsoft@gerbilsoft.com>
1367# References:
1368# - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
1369# - https://github.com/yazgoo/pvrx2png
1370# - https://github.com/nickworonekin/puyotools
1371
1372# Sega PVR header.
13730	name	sega-pvr-image-header
1374>0x0C	leshort	x	%d x
1375>0x0E	leshort	x	%d
1376# Image format.
1377>0x08	byte	0	\b, ARGB1555
1378>0x08	byte	1	\b, RGB565
1379>0x08	byte	2	\b, ARGB4444
1380>0x08	byte	3	\b, YUV442
1381>0x08	byte	4	\b, Bump
1382>0x08	byte	5	\b, 4bpp
1383>0x08	byte	6	\b, 8bpp
1384# Image data type.
1385>0x09	byte	0x01	\b, square twiddled
1386>0x09	byte	0x02	\b, square twiddled & mipmap
1387>0x09	byte	0x03	\b, VQ
1388>0x09	byte	0x04	\b, VQ & mipmap
1389>0x09	byte	0x05	\b, 8-bit CLUT twiddled
1390>0x09	byte	0x06	\b, 4-bit CLUT twiddled
1391>0x09	byte	0x07	\b, 8-bit direct twiddled
1392>0x09	byte	0x08	\b, 4-bit direct twiddled
1393>0x09	byte	0x09	\b, rectangle
1394>0x09	byte	0x0B	\b, rectangular stride
1395>0x09	byte	0x0D	\b, rectangular twiddled
1396>0x09	byte	0x10	\b, small VQ
1397>0x09	byte	0x11	\b, small VQ & mipmap
1398>0x09	byte	0x12	\b, square twiddled & mipmap
1399
1400# Sega PVR (Xbox) image header.
1401# Contains an embedded DirectDraw surface instead of PVR data.
14020	name	sega-pvr-xbox-dds-header
1403>16	lelong	x	%d x
1404>12	lelong	x	%d,
1405>84	string	x	%.4s
1406
1407# Sega PVR image.
14080	string	PVRT
1409>0x10	string	DDS\040\174\000\000\000 Sega PVR (Xbox) image:
1410>>0x20	use	sega-pvr-xbox-dds-header
1411>0x10	belong	!0x44445320		Sega PVR image:
1412>>0	use	sega-pvr-image-header
1413
1414# Sega PVR image with GBIX.
14150	string	GBIX
1416>0x10	string	PVRT
1417>>0x10	string	DDS\040\174\000\000\000 Sega PVR (Xbox) image:
1418>>>0x20	use	sega-pvr-xbox-dds-header
1419>>0x10	belong	!0x44445320		Sega PVR image:
1420>>>0x10	use	sega-pvr-image-header
1421>>0x08	lelong	x	\b, global index = %u
1422
1423# Sega GVR header.
14240	name	sega-gvr-image-header
1425>0x0C	beshort	x	%d x
1426>0x0E	beshort	x	%d
1427# Image data format.
1428>0x0B	byte	0	\b, I4
1429>0x0B	byte	1	\b, I8
1430>0x0B	byte	2	\b, IA4
1431>0x0B	byte	3	\b, IA8
1432>0x0B	byte	4	\b, RGB565
1433>0x0B	byte	5	\b, RGB5A3
1434>0x0B	byte	6	\b, ARGB8888
1435>0x0B	byte	8	\b, CI4
1436>0x0B	byte	9	\b, CI8
1437>0x0B	byte	14	\b, DXT1
1438
1439# Sega GVR image.
14400	string	GVRT	Sega GVR image:
1441>0x10	use	sega-gvr-image-header
1442
1443# Sega GVR image with GBIX.
14440	string	GBIX
1445>0x10	string	GVRT	Sega GVR image:
1446>>0x10	use	sega-gvr-image-header
1447>>0x08	belong	x	\b, global index = %u
1448