"Fossies" - the Fresh Open Source Software Archive

Member "file-5.35/magic/Magdir/images" (1 Oct 2018, 57199 Bytes) of package /linux/misc/file-5.35.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "images": 5.34_vs_5.35.

    1 
    2 #------------------------------------------------------------------------------
    3 # $File: images,v 1.152 2018/10/01 19:10:56 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
   29 0	ubequad&0x00FeC400000000C0	0
   30 # skip more garbage like *.iso by looking for positive image type
   31 >2	ubyte			>0
   32 # skip some compiled terminfo like xterm+tmux 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 depth 1 8 15 16 24 32
   35 >>>16	ubyte			1
   36 >>>>0		use		tga-image
   37 >>>16	ubyte			8
   38 >>>>0		use		tga-image
   39 >>>16	ubyte			15
   40 >>>>0		use		tga-image
   41 >>>16	ubyte			16
   42 >>>>0		use		tga-image
   43 >>>16	ubyte			24
   44 >>>>0		use		tga-image
   45 >>>16	ubyte			32
   46 >>>>0		use		tga-image
   47 #	display tga bitmap image information
   48 0	name				tga-image
   49 >2	ubyte		<34		Targa image data
   50 !:mime	image/x-tga
   51 !:apple	????TPIC
   52 # normal extension .tga but some Truevision products used others:
   53 # tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that)
   54 !:ext	tga/tpic/icb/vda/vst
   55 # image type 1 2 3 9 10 11 32 33
   56 >2	ubyte&0xF7	1		- Map
   57 >2	ubyte&0xF7	2		- RGB
   58 # alpha channel
   59 >>17	ubyte&0x0F	>0		\bA
   60 >2	ubyte&0xF7	3		- Mono
   61 # type not found, but by http://www.fileformat.info/format/tga/corion.htm
   62 # Compressed color-mapped data, using Huffman, Delta, and runlength encoding
   63 >2	ubyte		32		- Color
   64 # Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process
   65 >2	ubyte		33		- Color
   66 # Color Map Type 0~no 1~color map
   67 >1	ubyte		1		(
   68 # first color map entry, 0 normal
   69 >>3	uleshort	>0		\b%d-
   70 # color map length 0 2 1dh 3bh d9h 100h
   71 >>5	uleshort	x		\b%d)
   72 # 8~run length encoding bit
   73 >2	ubyte&0x08	8		- RLE
   74 # gimp can create big pictures!
   75 >12	uleshort	>0		%d x
   76 >12	uleshort	=0		65536 x
   77 # image height. 0 interpreted as 65536
   78 >14	uleshort	>0		%d
   79 >14	uleshort	=0		65536
   80 # Image Pixel depth 1 8 15 16 24 32
   81 >16	ubyte		x		x %d
   82 # X origin of image. 0 normal
   83 >8	uleshort	>0		+%d
   84 # Y origin of image. 0 normal; positive for top
   85 >10	uleshort	>0		+%d
   86 # Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction
   87 >17	ubyte&0x0F	>0		- %d-bit alpha
   88 # bits 5-4 give direction. normal bottom left
   89 >17	ubyte		&0x20		- top
   90 #>17	ubyte		^0x20		- bottom
   91 >17	ubyte		&0x10		- right
   92 #>17	ubyte		^0x10		- left
   93 # some info say other bits 6-7 should be zero
   94 # but data storage interleave by http://www.fileformat.info/format/tga/corion.htm
   95 # 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved
   96 #>17	ubyte&0xC0	0x00		- no interleave
   97 >17	ubyte&0xC0	0x40		- interleave
   98 >17	ubyte&0xC0	0x80		- four way interleave
   99 >17	ubyte&0xC0	0xC0		- reserved
  100 # positive length implies identification field
  101 >0	ubyte		>0
  102 >>18	string		x		"%s"
  103 # last 18 bytes of newer tga file footer signature
  104 >18	search/4261301/s	TRUEVISION-XFILE.\0
  105 # extension area offset if not 0
  106 >>&-8		ulelong			>0
  107 # length of the extension area. normal 495 for version 2.0
  108 >>>(&-4.l)	uleshort		0x01EF
  109 # AuthorName[41]
  110 >>>>&0		string			>\0		- author "%-.40s"
  111 # Comment[324]=4 * 80 null terminated
  112 >>>>&41		string			>\0		- comment "%-.80s"
  113 # date
  114 >>>>&365	ubequad&0xffffFFFFffff0000	!0
  115 # Day
  116 >>>>>&-6		uleshort		x		%d
  117 # Month
  118 >>>>>&-8		uleshort		x		\b-%d
  119 # Year
  120 >>>>>&-4		uleshort		x		\b-%d
  121 # time
  122 >>>>&371	ubequad&0xffffFFFFffff0000	!0
  123 # hour
  124 >>>>>&-8		uleshort		x		%d
  125 # minutes
  126 >>>>>&-6		uleshort		x		\b:%.2d
  127 # second
  128 >>>>>&-4		uleshort		x		\b:%.2d
  129 # JobName[41]
  130 >>>>&377		string			>\0		- job "%-.40s"
  131 # JobHour Jobminute Jobsecond
  132 >>>>&418	ubequad&0xffffFFFFffff0000	!0
  133 >>>>>&-8		uleshort		x		%d
  134 >>>>>&-6		uleshort		x		\b:%.2d
  135 >>>>>&-4		uleshort		x		\b:%.2d
  136 # SoftwareId[41]
  137 >>>>&424		string			>\0		- %-.40s
  138 # SoftwareVersionNumber
  139 >>>>&424	ubyte				>0
  140 >>>>>&40		uleshort/100		x		%d
  141 >>>>>&40		uleshort%100		x		\b.%d
  142 # VersionLetter
  143 >>>>>&42		ubyte			>0x20		\b%c
  144 # KeyColor
  145 >>>>&468		ulelong			>0		- keycolor 0x%8.8x
  146 # Denominator of Pixel ratio. 0~no pixel aspect
  147 >>>>&474	uleshort			>0
  148 # Numerator
  149 >>>>>&-4		uleshort		>0		- aspect %d
  150 >>>>>&-2		uleshort		x		\b/%d
  151 # Denominator of Gamma ratio. 0~no Gamma value
  152 >>>>&478	uleshort			>0
  153 # Numerator
  154 >>>>>&-4		uleshort		>0		- gamma %d
  155 >>>>>&-2		uleshort		x		\b/%d
  156 # ColorOffset
  157 #>>>>&480	ulelong			x		- col offset 0x%8.8x
  158 # StampOffset
  159 #>>>>&484	ulelong			x		- stamp offset 0x%8.8x
  160 # ScanOffset
  161 #>>>>&488	ulelong			x		- scan offset 0x%8.8x
  162 # AttributesType
  163 #>>>>&492	ubyte			x		- Attributes 0x%x
  164 ## EndOfTGA
  165 
  166 # PBMPLUS images
  167 # The next byte following the magic is always whitespace.
  168 # strength is changed to try these patterns before "x86 boot sector"
  169 0	name		netpbm
  170 >3	regex/s		=[0-9]{1,50}\ [0-9]{1,50}	Netpbm image data
  171 >>&0	regex		=[0-9]{1,50} 			\b, size = %s x
  172 >>>&0	regex		=[0-9]{1,50}			\b %s
  173 
  174 0	search/1	P1
  175 >0	regex/4		P1[\040\t\f\r\n]
  176 >>0	use		netpbm
  177 >>0	string		x	\b, bitmap
  178 !:strength + 45
  179 !:mime	image/x-portable-bitmap
  180 
  181 0	search/1	P2
  182 >0	regex/4		P2[\040\t\f\r\n]
  183 >>0	use		netpbm
  184 >>0	string		x	\b, greymap
  185 !:strength + 45
  186 !:mime	image/x-portable-greymap
  187 
  188 0	search/1	P3
  189 >0	regex/4		P3[\040\t\f\r\n]
  190 >>0	use		netpbm
  191 >>0	string		x	\b, pixmap
  192 !:strength + 45
  193 !:mime	image/x-portable-pixmap
  194 
  195 0	string		P4
  196 >0	regex/4		P4[\040\t\f\r\n]
  197 >>0	use		netpbm
  198 >>0	string		x	\b, rawbits, bitmap
  199 !:strength + 45
  200 !:mime	image/x-portable-bitmap
  201 
  202 0	string		P5
  203 >0	regex/4		P5[\040\t\f\r\n]
  204 >>0	use		netpbm
  205 >>0	string		x	\b, rawbits, greymap
  206 !:strength + 45
  207 !:mime	image/x-portable-greymap
  208 
  209 0	string		P6
  210 >0	regex/4		P6[\040\t\f\r\n]
  211 >>0	use		netpbm
  212 >>0	string		x	\b, rawbits, pixmap
  213 !:strength + 45
  214 !:mime	image/x-portable-pixmap
  215 
  216 0	string		P7		Netpbm PAM image file
  217 !:mime	image/x-portable-pixmap
  218 
  219 # From: bryanh@giraffe-data.com (Bryan Henderson)
  220 0	string		\117\072	Solitaire Image Recorder format
  221 >4	string		\013		MGI Type 11
  222 >4	string		\021		MGI Type 17
  223 0	string		.MDA		MicroDesign data
  224 >21	byte		48		version 2
  225 >21	byte		51		version 3
  226 0	string		.MDP		MicroDesign page data
  227 >21	byte		48		version 2
  228 >21	byte		51		version 3
  229 
  230 # NIFF (Navy Interchange File Format, a modification of TIFF) images
  231 # [GRR:  this *must* go before TIFF]
  232 0	string		IIN1		NIFF image data
  233 !:mime	image/x-niff
  234 
  235 # Canon RAW version 1 (CRW) files are a type of Canon Image File Format
  236 # (CIFF) file. These are apparently all little-endian.
  237 # From: Adam Buchbinder <adam.buchbinder@gmail.com>
  238 # URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
  239 0	string		II\x1a\0\0\0HEAPCCDR	Canon CIFF raw image data
  240 !:mime	image/x-canon-crw
  241 >16	leshort		x	\b, version %d.
  242 >14	leshort		x	\b%d
  243 
  244 # Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
  245 # number. Put this above the TIFF test to make sure we detect them.
  246 # These are apparently all little-endian.
  247 # From: Adam Buchbinder <adam.buchbinder@gmail.com>
  248 # URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
  249 0	string		II\x2a\0\x10\0\0\0CR	Canon CR2 raw image data
  250 !:mime	image/x-canon-cr2
  251 !:strength +80
  252 >10	byte		x	\b, version %d.
  253 >11	byte		x	\b%d
  254 
  255 # Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
  256 # The second word of TIFF files is the TIFF version number, 42, which has
  257 # never changed.  The TIFF specification recommends testing for it.
  258 0	string		MM\x00\x2a	TIFF image data, big-endian
  259 !:strength +70
  260 !:mime	image/tiff
  261 >(4.L)	use		\^tiff_ifd
  262 0	string		II\x2a\x00	TIFF image data, little-endian
  263 !:mime	image/tiff
  264 !:strength +70
  265 >(4.l)	use		tiff_ifd
  266 
  267 0	name		tiff_ifd
  268 >0	leshort		x		\b, direntries=%d
  269 >2	use		tiff_entry
  270 
  271 0	name		tiff_entry
  272 # NewSubFileType
  273 >0	leshort		0xfe
  274 >>12	use		tiff_entry
  275 >0	leshort		0x100
  276 >>4	lelong		1
  277 >>>12	use		tiff_entry
  278 >>>8	leshort		x		\b, width=%d
  279 >0	leshort		0x101
  280 >>4	lelong		1
  281 >>>8	leshort		x		\b, height=%d
  282 >>>12	use		tiff_entry
  283 >0	leshort		0x102
  284 >>8	leshort		x		\b, bps=%d
  285 >>12	use		tiff_entry
  286 >0	leshort		0x103
  287 >>4	lelong		1		\b, compression=
  288 >>>8	leshort		1		\bnone
  289 >>>8	leshort		2		\bhuffman
  290 >>>8	leshort		3		\bbi-level group 3
  291 >>>8	leshort		4		\bbi-level group 4
  292 >>>8	leshort		5		\bLZW
  293 >>>8	leshort		6		\bJPEG (old)
  294 >>>8	leshort		7		\bJPEG
  295 >>>8	leshort		8		\bdeflate
  296 >>>8	leshort		9		\bJBIG, ITU-T T.85
  297 >>>8	leshort		0xa		\bJBIG, ITU-T T.43
  298 >>>8	leshort		0x7ffe		\bNeXT RLE 2-bit
  299 >>>8	leshort		0x8005		\bPackBits (Macintosh RLE)
  300 >>>8	leshort		0x8029		\bThunderscan RLE
  301 >>>8	leshort		0x807f		\bRasterPadding (CT or MP)
  302 >>>8	leshort		0x8080		\bRLE (Line Work)
  303 >>>8	leshort		0x8081		\bRLE (High-Res Cont-Tone)
  304 >>>8	leshort		0x8082		\bRLE (Binary Line Work)
  305 >>>8	leshort		0x80b2		\bDeflate (PKZIP)
  306 >>>8	leshort		0x80b3		\bKodak DCS
  307 >>>8	leshort		0x8765		\bJBIG
  308 >>>8	leshort		0x8798		\bJPEG2000
  309 >>>8	leshort		0x8799		\bNikon NEF Compressed
  310 >>>8	default		x
  311 >>>>8	leshort		x		\b(unknown 0x%x)
  312 >>>12	use		tiff_entry
  313 >0	leshort		0x106		\b, PhotometricIntepretation=
  314 >>8	clear		x
  315 >>8	leshort		0		\bWhiteIsZero
  316 >>8	leshort		1		\bBlackIsZero
  317 >>8	leshort		2		\bRGB
  318 >>8	leshort		3		\bRGB Palette
  319 >>8	leshort		4		\bTransparency Mask
  320 >>8	leshort		5		\bCMYK
  321 >>8	leshort		6		\bYCbCr
  322 >>8	leshort		8		\bCIELab
  323 >>8	default		x
  324 >>>8	leshort		x		\b(unknown=0x%x)
  325 >>12	use		tiff_entry
  326 # FillOrder
  327 >0	leshort		0x10a
  328 >>4	lelong		1
  329 >>>12	use		tiff_entry
  330 # DocumentName
  331 >0	leshort		0x10d
  332 >>(8.l)	string		x		\b, name=%s
  333 >>>12	use		tiff_entry
  334 # ImageDescription
  335 >0	leshort		0x10e
  336 >>(8.l)	string		x		\b, description=%s
  337 >>>12	use		tiff_entry
  338 # Make
  339 >0	leshort		0x10f
  340 >>(8.l)	string		x		\b, manufacturer=%s
  341 >>>12	use		tiff_entry
  342 # Model
  343 >0	leshort		0x110
  344 >>(8.l)	string		x		\b, model=%s
  345 >>>12	use		tiff_entry
  346 # StripOffsets
  347 >0	leshort		0x111
  348 >>12	use		tiff_entry
  349 # Orientation
  350 >0	leshort		0x112		\b, orientation=
  351 >>8	leshort		1		\bupper-left
  352 >>8	leshort		3		\blower-right
  353 >>8	leshort		6		\bupper-right
  354 >>8	leshort		8		\blower-left
  355 >>8	leshort		9		\bundefined
  356 >>8	default		x
  357 >>>8	leshort		x		\b[*%d*]
  358 >>12	use		tiff_entry
  359 # XResolution
  360 >0	leshort		0x11a
  361 >>8	lelong		x		\b, xresolution=%d
  362 >>12	use		tiff_entry
  363 # YResolution
  364 >0	leshort		0x11b
  365 >>8	lelong		x		\b, yresolution=%d
  366 >>12	use		tiff_entry
  367 # ResolutionUnit
  368 >0	leshort		0x128
  369 >>8	leshort		x		\b, resolutionunit=%d
  370 >>12	use		tiff_entry
  371 # Software
  372 >0	leshort		0x131
  373 >>(8.l)	string		x		\b, software=%s
  374 >>12	use		tiff_entry
  375 # Datetime
  376 >0	leshort		0x132
  377 >>(8.l)	string		x		\b, datetime=%s
  378 >>12	use		tiff_entry
  379 # HostComputer
  380 >0	leshort		0x13c
  381 >>(8.l)	string		x		\b, hostcomputer=%s
  382 >>12	use		tiff_entry
  383 # WhitePoint
  384 >0	leshort		0x13e
  385 >>12	use		tiff_entry
  386 # PrimaryChromaticities
  387 >0	leshort		0x13f
  388 >>12	use		tiff_entry
  389 # YCbCrCoefficients
  390 >0	leshort		0x211
  391 >>12	use		tiff_entry
  392 # YCbCrPositioning
  393 >0	leshort		0x213
  394 >>12	use		tiff_entry
  395 # ReferenceBlackWhite
  396 >0	leshort		0x214
  397 >>12	use		tiff_entry
  398 # Copyright
  399 >0	leshort		0x8298
  400 >>(8.l)	string		x		\b, copyright=%s
  401 >>12	use		tiff_entry
  402 # ExifOffset
  403 >0	leshort		0x8769
  404 >>12	use		tiff_entry
  405 # GPS IFD
  406 >0	leshort		0x8825		\b, GPS-Data
  407 >>12	use		tiff_entry
  408 
  409 #>0	leshort		x		\b, unknown=0x%x
  410 #>>12	use		tiff_entry
  411 
  412 0	string		MM\x00\x2b	Big TIFF image data, big-endian
  413 !:mime	image/tiff
  414 0	string		II\x2b\x00	Big TIFF image data, little-endian
  415 !:mime	image/tiff
  416 
  417 # PNG [Portable Network Graphics, or "PNG's Not GIF"] images
  418 # (Greg Roelofs, newt@uchicago.edu)
  419 # (Albert Cahalan, acahalan@cs.uml.edu)
  420 #
  421 # 137 P N G \r \n ^Z \n [4-byte length] I H D R [HEAD data] [HEAD crc] ...
  422 #
  423 
  424 # IHDR parser
  425 0	name		png-ihdr
  426 >0	belong		x		\b, %d x
  427 >4	belong		x		%d,
  428 >8	byte		x		%d-bit
  429 >9	byte		0		grayscale,
  430 >9	byte		2		\b/color RGB,
  431 >9	byte		3		colormap,
  432 >9	byte		4		gray+alpha,
  433 >9	byte		6		\b/color RGBA,
  434 #>10	byte		0		deflate/32K,
  435 >12	byte		0		non-interlaced
  436 >12	byte		1		interlaced
  437 
  438 # Standard PNG image.
  439 0	string		\x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0DIHDR	PNG image data
  440 !:mime	image/png
  441 !:ext   png
  442 !:strength +10
  443 >16	use		png-ihdr
  444 
  445 # Apple CgBI PNG image.
  446 0	string		\x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x04CgBI
  447 >24	string  	\x00\x00\x00\x0DIHDR	PNG image data (CgBI)
  448 !:mime	image/png
  449 !:ext   png
  450 !:strength +10
  451 >>32	use		png-ihdr
  452 
  453 # possible GIF replacements; none yet released!
  454 # (Greg Roelofs, newt@uchicago.edu)
  455 #
  456 # GRR 950115:  this was mine ("Zip GIF"):
  457 0	string		GIF94z		ZIF image (GIF+deflate alpha)
  458 !:mime	image/x-unknown
  459 #
  460 # GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
  461 #
  462 0	string		FGF95a		FGF image (GIF+deflate beta)
  463 !:mime	image/x-unknown
  464 #
  465 # GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
  466 # (best; not yet implemented):
  467 #
  468 0	string		PBF		PBF image (deflate compression)
  469 !:mime	image/x-unknown
  470 
  471 # GIF
  472 # Strength set up to beat 0x55AA DOS/MBR signature word lookups (+65)
  473 0	string		GIF8		GIF image data
  474 !:strength +80
  475 !:mime	image/gif
  476 !:apple	8BIMGIFf
  477 >4	string		7a		\b, version 8%s,
  478 >4	string		9a		\b, version 8%s,
  479 >6	leshort		>0		%d x
  480 >8	leshort		>0		%d
  481 #>10	byte		&0x80		color mapped,
  482 #>10	byte&0x07	=0x00		2 colors
  483 #>10	byte&0x07	=0x01		4 colors
  484 #>10	byte&0x07	=0x02		8 colors
  485 #>10	byte&0x07	=0x03		16 colors
  486 #>10	byte&0x07	=0x04		32 colors
  487 #>10	byte&0x07	=0x05		64 colors
  488 #>10	byte&0x07	=0x06		128 colors
  489 #>10	byte&0x07	=0x07		256 colors
  490 
  491 # ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
  492 # 1 plane, no encoding.
  493 0	string		\361\0\100\273	CMU window manager raster image data
  494 >4	lelong		>0		%d x
  495 >8	lelong		>0		%d,
  496 >12	lelong		>0		%d-bit
  497 
  498 # Magick Image File Format
  499 0	string		id=ImageMagick	MIFF image data
  500 
  501 # Artisan
  502 0	long		1123028772	Artisan image data
  503 >4	long		1		\b, rectangular 24-bit
  504 >4	long		2		\b, rectangular 8-bit with colormap
  505 >4	long		3		\b, rectangular 32-bit (24-bit with matte)
  506 
  507 # FIG (Facility for Interactive Generation of figures), an object-based format
  508 0	search/1	#FIG		FIG image text
  509 >5	string		x		\b, version %.3s
  510 
  511 # PHIGS
  512 0	string		ARF_BEGARF		PHIGS clear text archive
  513 0	string		@(#)SunPHIGS		SunPHIGS
  514 # version number follows, in the form m.n
  515 >40	string		SunBin			binary
  516 >32	string		archive			archive
  517 
  518 # GKS (Graphics Kernel System)
  519 0	string		GKSM		GKS Metafile
  520 >24	string		SunGKS		\b, SunGKS
  521 
  522 # CGM image files
  523 0	string		BEGMF		clear text Computer Graphics Metafile
  524 
  525 # MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
  526 0	string	yz	MGR bitmap, modern format, 8-bit aligned
  527 0	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
  528 0	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
  529 0	string	yx	MGR bitmap, modern format, squeezed
  530 
  531 # Fuzzy Bitmap (FBM) images
  532 0	string		%bitmap\0	FBM image data
  533 >30	long		0x31		\b, mono
  534 >30	long		0x33		\b, color
  535 
  536 # facsimile data
  537 1	string		PC\ Research,\ Inc	group 3 fax data
  538 >29	byte		0		\b, normal resolution (204x98 DPI)
  539 >29	byte		1		\b, fine resolution (204x196 DPI)
  540 # From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
  541 0	string		Sfff		structured fax file
  542 
  543 # From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
  544 # most files with the extension .EPA and some with .BMP
  545 0	string		\x11\x06	Award BIOS Logo, 136 x 84
  546 !:mime	image/x-award-bioslogo
  547 0	string		\x11\x09	Award BIOS Logo, 136 x 126
  548 !:mime	image/x-award-bioslogo
  549 #0	string		\x07\x1f	BIOS Logo corrupted?
  550 # http://www.blackfiveservices.co.uk/awbmtools.shtml
  551 # http://biosgfx.narod.ru/v3/
  552 # http://biosgfx.narod.ru/abr-2/
  553 0	string		AWBM
  554 >4	leshort		<1981		Award BIOS bitmap
  555 !:mime	image/x-award-bmp
  556 # image width is a multiple of 4
  557 >>4	leshort&0x0003	0
  558 >>>4		leshort	x		\b, %d
  559 >>>6		leshort	x		x %d
  560 >>4	leshort&0x0003	>0		\b,
  561 >>>4	leshort&0x0003	=1
  562 >>>>4		leshort	x		%d+3
  563 >>>4	leshort&0x0003	=2
  564 >>>>4		leshort	x		%d+2
  565 >>>4	leshort&0x0003	=3
  566 >>>>4		leshort	x		%d+1
  567 >>>6		leshort	x		x %d
  568 # at offset 8 starts imagedata followed by "RGB " marker
  569 
  570 # PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
  571 # http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
  572 # 28bitmap_information_header.29
  573 0	string		BM
  574 >14	leshort		12		PC bitmap, OS/2 1.x format
  575 !:mime	image/x-ms-bmp
  576 >>18	leshort		x		\b, %d x
  577 >>20	leshort		x		%d
  578 >14	leshort		64		PC bitmap, OS/2 2.x format
  579 !:mime	image/x-ms-bmp
  580 >>18	leshort		x		\b, %d x
  581 >>20	leshort		x		%d
  582 >14	leshort		40		PC bitmap, Windows 3.x format
  583 !:mime	image/x-ms-bmp
  584 >>18	lelong		x		\b, %d x
  585 >>22	lelong		x		%d x
  586 >>28	leshort		x		%d
  587 >14	leshort		124		PC bitmap, Windows 98/2000 and newer format
  588 !:mime	image/x-ms-bmp
  589 >>18	lelong		x		\b, %d x
  590 >>22	lelong		x		%d x
  591 >>28	leshort		x		%d
  592 >14	leshort		108		PC bitmap, Windows 95/NT4 and newer format
  593 !:mime	image/x-ms-bmp
  594 >>18	lelong		x		\b, %d x
  595 >>22	lelong		x		%d x
  596 >>28	leshort		x		%d
  597 >14	leshort		128		PC bitmap, Windows NT/2000 format
  598 !:mime	image/x-ms-bmp
  599 >>18	lelong		x		\b, %d x
  600 >>22	lelong		x		%d x
  601 >>28	leshort		x		%d
  602 # Too simple - MPi
  603 #0	string		IC		PC icon data
  604 #0	string		PI		PC pointer image data
  605 #0	string		CI		PC color icon data
  606 #0	string		CP		PC color pointer image data
  607 # Conflicts with other entries [BABYL]
  608 #0	string		BA		PC bitmap array data
  609 
  610 # XPM icons (Greg Roelofs, newt@uchicago.edu)
  611 0	search/1	/*\ XPM\ */	X pixmap image text
  612 !:mime	image/x-xpmi
  613 
  614 # Utah Raster Toolkit RLE images (janl@ifi.uio.no)
  615 0	leshort		0xcc52		RLE image data,
  616 >6	leshort		x		%d x
  617 >8	leshort		x		%d
  618 >2	leshort		>0		\b, lower left corner: %d
  619 >4	leshort		>0		\b, lower right corner: %d
  620 >10	byte&0x1	=0x1		\b, clear first
  621 >10	byte&0x2	=0x2		\b, no background
  622 >10	byte&0x4	=0x4		\b, alpha channel
  623 >10	byte&0x8	=0x8		\b, comment
  624 >11	byte		>0		\b, %d color channels
  625 >12	byte		>0		\b, %d bits per pixel
  626 >13	byte		>0		\b, %d color map channels
  627 
  628 # image file format (Robert Potter, potter@cs.rochester.edu)
  629 0	string		Imagefile\ version-	iff image data
  630 # this adds the whole header (inc. version number), informative but longish
  631 >10	string		>\0		%s
  632 
  633 # Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
  634 0	belong		0x59a66a95	Sun raster image data
  635 >4	belong		>0		\b, %d x
  636 >8	belong		>0		%d,
  637 >12	belong		>0		%d-bit,
  638 #>16	belong		>0		%d bytes long,
  639 >20	belong		0		old format,
  640 #>20	belong		1		standard,
  641 >20	belong		2		compressed,
  642 >20	belong		3		RGB,
  643 >20	belong		4		TIFF,
  644 >20	belong		5		IFF,
  645 >20	belong		0xffff		reserved for testing,
  646 >24	belong		0		no colormap
  647 >24	belong		1		RGB colormap
  648 >24	belong		2		raw colormap
  649 #>28	belong		>0		colormap is %d bytes long
  650 
  651 # SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
  652 #
  653 # See
  654 #	http://reality.sgi.com/grafica/sgiimage.html
  655 #
  656 0	beshort		474		SGI image data
  657 #>2	byte		0		\b, verbatim
  658 >2	byte		1		\b, RLE
  659 #>3	byte		1		\b, normal precision
  660 >3	byte		2		\b, high precision
  661 >4	beshort		x		\b, %d-D
  662 >6	beshort		x		\b, %d x
  663 >8	beshort		x		%d
  664 >10	beshort		x		\b, %d channel
  665 >10	beshort		!1		\bs
  666 >80	string		>0		\b, "%s"
  667 
  668 0	string		IT01		FIT image data
  669 >4	belong		x		\b, %d x
  670 >8	belong		x		%d x
  671 >12	belong		x		%d
  672 #
  673 0	string		IT02		FIT image data
  674 >4	belong		x		\b, %d x
  675 >8	belong		x		%d x
  676 >12	belong		x		%d
  677 #
  678 2048	string		PCD_IPI		Kodak Photo CD image pack file
  679 >0xe02	byte&0x03	0x00		, landscape mode
  680 >0xe02	byte&0x03	0x01		, portrait mode
  681 >0xe02	byte&0x03	0x02		, landscape mode
  682 >0xe02	byte&0x03	0x03		, portrait mode
  683 0	string		PCD_OPA		Kodak Photo CD overview pack file
  684 
  685 # FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
  686 # FITS is the Flexible Image Transport System, the de facto standard for
  687 # data and image transfer, storage, etc., for the astronomical community.
  688 # (FITS floating point formats are big-endian.)
  689 0	string	SIMPLE\ \ =	FITS image data
  690 !:mime	image/fits
  691 !:ext	fits/fts
  692 >109	string	8		\b, 8-bit, character or unsigned binary integer
  693 >108	string	16		\b, 16-bit, two's complement binary integer
  694 >107	string	\ 32		\b, 32-bit, two's complement binary integer
  695 >107	string	-32		\b, 32-bit, floating point, single precision
  696 >107	string	-64		\b, 64-bit, floating point, double precision
  697 
  698 # other images
  699 0	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
  700 
  701 # From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
  702 # stuff.
  703 #
  704 0	beshort		0x1010		PEX Binary Archive
  705 
  706 # DICOM medical imaging data
  707 # URL:		https://en.wikipedia.org/wiki/DICOM#Data_format
  708 # Note:		"dcm" is the official file name extension
  709 # 		XnView mention also "dc3" and "acr" as file name extension
  710 128	string	DICM			DICOM medical imaging data
  711 !:mime	application/dicom
  712 !:ext dcm/dicom/dic
  713 
  714 # XWD - X Window Dump file.
  715 #   As described in /usr/X11R6/include/X11/XWDFile.h
  716 #   used by the xwd program.
  717 #   Bradford Castalia, idaeim, 1/01
  718 #   updated by Adam Buchbinder, 2/09
  719 # The following assumes version 7 of the format; the first long is the length
  720 # of the header, which is at least 25 4-byte longs, and the one at offset 8
  721 # is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
  722 # which is a maximum of 32.
  723 0	belong	>100
  724 >8	belong	<3
  725 >>12	belong	<33
  726 >>>4	belong	7			XWD X Window Dump image data
  727 !:mime	image/x-xwindowdump
  728 >>>>100	string	>\0			\b, "%s"
  729 >>>>16	belong	x			\b, %dx
  730 >>>>20	belong	x			\b%dx
  731 >>>>12	belong	x			\b%d
  732 
  733 # PDS - Planetary Data System
  734 #   These files use Parameter Value Language in the header section.
  735 #   Unfortunately, there is no certain magic, but the following
  736 #   strings have been found to be most likely.
  737 0	string	NJPL1I00		PDS (JPL) image data
  738 2	string	NJPL1I			PDS (JPL) image data
  739 0	string	CCSD3ZF			PDS (CCSD) image data
  740 2	string	CCSD3Z			PDS (CCSD) image data
  741 0	string	PDS_			PDS image data
  742 0	string	LBLSIZE=		PDS (VICAR) image data
  743 
  744 # pM8x: ATARI STAD compressed bitmap format
  745 #
  746 # from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
  747 # p M 8 5/6 xx yy zz data...
  748 # Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
  749 # bytes either run horizontally (pM85) or vertically (pM86). yy is the
  750 # most frequent byte, xx and zz are runlength escape codes, where xx is
  751 # used for runs of yy.
  752 #
  753 0	string	pM85		Atari ST STAD bitmap image data (hor)
  754 >5	byte	0x00		(white background)
  755 >5	byte	0xFF		(black background)
  756 0	string	pM86		Atari ST STAD bitmap image data (vert)
  757 >5	byte	0x00		(white background)
  758 >5	byte	0xFF		(black background)
  759 
  760 # From: Alex Myczko <alex@aiei.ch>
  761 # http://www.atarimax.com/jindroush.atari.org/afmtatr.html
  762 0	leshort	0x0296		Atari ATR image
  763 
  764 # XXX:
  765 # This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
  766 # magic.
  767 # SGI RICE image file <mpruett@sgi.com>
  768 #0	beshort	0x5249		RICE image
  769 #>2	beshort	x		v%d
  770 #>4	beshort	x		(%d x
  771 #>6	beshort	x		%d)
  772 #>8	beshort	0		8 bit
  773 #>8	beshort	1		10 bit
  774 #>8	beshort	2		12 bit
  775 #>8	beshort	3		13 bit
  776 #>10	beshort	0		4:2:2
  777 #>10	beshort	1		4:2:2:4
  778 #>10	beshort	2		4:4:4
  779 #>10	beshort	3		4:4:4:4
  780 #>12	beshort	1		RGB
  781 #>12	beshort	2		CCIR601
  782 #>12	beshort	3		RP175
  783 #>12	beshort	4		YUV
  784 
  785 # PCX image files
  786 # From: Dan Fandrich <dan@coneharvesters.com>
  787 # updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
  788 # http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
  789 # GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
  790 # 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
  791 0	ubelong&0xffF8fe00	0x0a000000
  792 # for PCX bit depth > 0
  793 >3	ubyte		>0
  794 # test for valid versions
  795 >>1	ubyte		<6
  796 >>>1	ubyte		!1	PCX
  797 !:mime	image/x-pcx
  798 #!:mime	image/pcx
  799 >>>>1	ubyte		0	ver. 2.5 image data
  800 >>>>1	ubyte		2	ver. 2.8 image data, with palette
  801 >>>>1	ubyte		3	ver. 2.8 image data, without palette
  802 >>>>1	ubyte		4	for Windows image data
  803 >>>>1	ubyte		5	ver. 3.0 image data
  804 >>>>4	uleshort	x	bounding box [%d,
  805 >>>>6	uleshort	x	%d] -
  806 >>>>8	uleshort	x	[%d,
  807 >>>>10	uleshort	x	%d],
  808 >>>>65	ubyte		>1	%d planes each of
  809 >>>>3	ubyte		x	%d-bit
  810 >>>>68	byte		1	colour,
  811 >>>>68	byte		2	grayscale,
  812 # this should not happen
  813 >>>>68	default		x	image,
  814 >>>>12	leshort		>0	%d x
  815 >>>>>14	uleshort	x	%d dpi,
  816 >>>>2	byte		0	uncompressed
  817 >>>>2	byte		1	RLE compressed
  818 
  819 # Adobe Photoshop
  820 # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
  821 0	string		8BPS Adobe Photoshop Image
  822 !:mime	image/vnd.adobe.photoshop
  823 >4   beshort 2 (PSB)
  824 >18  belong  x \b, %d x
  825 >14  belong  x %d,
  826 >24  beshort 0 bitmap
  827 >24  beshort 1 grayscale
  828 >>12 beshort 2 with alpha
  829 >24  beshort 2 indexed
  830 >24  beshort 3 RGB
  831 >>12 beshort 4 \bA
  832 >24  beshort 4 CMYK
  833 >>12 beshort 5 \bA
  834 >24  beshort 7 multichannel
  835 >24  beshort 8 duotone
  836 >24  beshort 9 lab
  837 >12  beshort > 1
  838 >>12  beshort x \b, %dx
  839 >12  beshort 1 \b,
  840 >22  beshort x %d-bit channel
  841 >12  beshort > 1 \bs
  842 
  843 # XV thumbnail indicator (ThMO)
  844 0	string		P7\ 332		XV thumbnail image data
  845 
  846 # NITF is defined by United States MIL-STD-2500A
  847 0	string	NITF	National Imagery Transmission Format
  848 >25	string	>\0	dated %.14s
  849 
  850 # GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
  851 # Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de>
  852 # Update: Joerg Jenderek
  853 # See http://fileformats.archiveteam.org/wiki/GEM_Raster
  854 # For variations, also see:
  855 #    http://www.seasip.info/Gem/ff_img.html (Ventura)
  856 #    http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT)
  857 #    http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT)
  858 #    http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG)
  859 0       beshort     0x0001
  860 # header_size
  861 >2      beshort     0x0008
  862 >>0     use gem_info
  863 >2      beshort     0x0009
  864 >>0     use gem_info
  865 # no example for NOSIG
  866 >2      beshort     24
  867 >>0     use gem_info
  868 # no example for HYPERPAINT
  869 >2      beshort     25
  870 >>0     use gem_info
  871 16      string      XIMG\0
  872 >0      use gem_info
  873 # no example
  874 16      string      STTT\0\x10
  875 >0      use gem_info
  876 # no example or description
  877 16      string      TIMG\0
  878 >0      use gem_info
  879 
  880 0   name        gem_info
  881 # version is 2 for some XIMG and 1 for all others
  882 >0	beshort		<0x0003		GEM
  883 # http://www.snowstone.org.uk/riscos/mimeman/mimemap.txt
  884 !:mime	image/x-gem
  885 # header_size 24 25 27 59 779 words for colored bitmaps
  886 >>2	beshort		>9
  887 >>>16	string		STTT\0\x10	STTT
  888 >>>16	string		TIMG\0		TIMG
  889 # HYPERPAINT or NOSIG variant
  890 >>>16	string		\0\x80
  891 >>>>2	beshort		=24		NOSIG
  892 >>>>2	beshort		!24		HYPERPAINT
  893 # NOSIG or XIMG variant
  894 >>>16	default		x
  895 >>>>16	string		!XIMG\0		NOSIG
  896 >>16	string		=XIMG\0		XIMG Image data
  897 !:ext	img/ximg
  898 # to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type
  899 >>16	string		!XIMG\0		Image data
  900 !:ext	img
  901 # header_size is 9 for Ventura files and 8 for other GEM Paint files
  902 >>2	beshort		9		(Ventura)
  903 #>>2	beshort		8		(Paint)
  904 >>12	beshort		x		%d x
  905 >>14	beshort		x		%d,
  906 # 1 4 8
  907 >>4	beshort		x		%d planes,
  908 # in tenths of a millimetre
  909 >>8	beshort		x		%d x
  910 >>10	beshort		x		%d pixelsize
  911 # pattern_size 1-8. 2 for GEM Paint
  912 >>6	beshort		!2		\b, pattern size %d
  913 
  914 # GEM Metafile (Wolfram Kleff)
  915 0	lelong		0x0018FFFF	GEM Metafile data
  916 >4	leshort		x		version %d
  917 
  918 #
  919 # SMJPEG. A custom Motion JPEG format used by Loki Entertainment
  920 # Software Torbjorn Andersson <d91tan@Update.UU.SE>.
  921 #
  922 0	string	\0\nSMJPEG	SMJPEG
  923 >8	belong	x		%d.x data
  924 # According to the specification you could find any number of _TXT
  925 # headers here, but I can't think of any way of handling that. None of
  926 # the SMJPEG files I tried it on used this feature. Even if such a
  927 # file is encountered the output should still be reasonable.
  928 >16	string	_SND		\b,
  929 >>24	beshort	>0		%d Hz
  930 >>26	byte	8		8-bit
  931 >>26	byte	16		16-bit
  932 >>28	string	NONE		uncompressed
  933 # >>28	string	APCM		ADPCM compressed
  934 >>27	byte	1		mono
  935 >>28	byte	2		stereo
  936 # Help! Isn't there any way to avoid writing this part twice?
  937 >>32	string	_VID		\b,
  938 # >>>48	string	JFIF		JPEG
  939 >>>40	belong	>0		%d frames
  940 >>>44	beshort	>0		(%d x
  941 >>>46	beshort	>0		%d)
  942 >16	string	_VID		\b,
  943 # >>32	string	JFIF		JPEG
  944 >>24	belong	>0		%d frames
  945 >>28	beshort	>0		(%d x
  946 >>30	beshort	>0		%d)
  947 
  948 0	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
  949 
  950 # "thumbnail file" (icon)
  951 # descended from "xv", but in use by other applications as well (Wolfram Kleff)
  952 0       string          P7\ 332         XV "thumbnail file" (icon) data
  953 
  954 # taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
  955 0       string          KiSS            KISS/GS
  956 >4      byte            16              color
  957 >>5     byte            x               %d bit
  958 >>8     leshort         x               %d colors
  959 >>10    leshort         x               %d groups
  960 >4      byte            32              cell
  961 >>5     byte            x               %d bit
  962 >>8     leshort         x               %d x
  963 >>10    leshort         x               %d
  964 >>12    leshort         x               +%d
  965 >>14    leshort         x               +%d
  966 
  967 # Webshots (www.webshots.com), by John Harrison
  968 0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
  969 
  970 # Hercules DASD image files
  971 # From Jan Jaeger <jj@septa.nl>
  972 0       string  CKD_P370        Hercules CKD DASD image file
  973 >8      long    x               \b, %d heads per cylinder
  974 >12     long    x               \b, track size %d bytes
  975 >16     byte    x               \b, device type 33%2.2X
  976 
  977 0       string  CKD_C370        Hercules compressed CKD DASD image file
  978 >8      long    x               \b, %d heads per cylinder
  979 >12     long    x               \b, track size %d bytes
  980 >16     byte    x               \b, device type 33%2.2X
  981 
  982 0       string  CKD_S370        Hercules CKD DASD shadow file
  983 >8      long    x               \b, %d heads per cylinder
  984 >12     long    x               \b, track size %d bytes
  985 >16     byte    x               \b, device type 33%2.2X
  986 
  987 # Squeak images and programs - etoffi@softhome.net
  988 0	string		\146\031\0\0	Squeak image data
  989 0	search/1	'From\040Squeak	Squeak program text
  990 
  991 # partimage: file(1) magic for PartImage files (experimental, incomplete)
  992 # Author: Hans-Joachim Baader <hjb@pro-linux.de>
  993 0		string	PaRtImAgE-VoLuMe	PartImage
  994 >0x0020		string	0.6.1		file version %s
  995 >>0x0060	lelong	>-1		volume %d
  996 #>>0x0064 8 byte identifier
  997 #>>0x007c reserved
  998 >>0x0200	string	>\0		type %s
  999 >>0x1400	string	>\0		device %s,
 1000 >>0x1600	string	>\0		original filename %s,
 1001 # Some fields omitted
 1002 >>0x2744	lelong	0		not compressed
 1003 >>0x2744	lelong	1		gzip compressed
 1004 >>0x2744	lelong	2		bzip2 compressed
 1005 >>0x2744	lelong	>2		compressed with unknown algorithm
 1006 >0x0020		string	>0.6.1		file version %s
 1007 >0x0020		string	<0.6.1		file version %s
 1008 
 1009 # DCX is multi-page PCX, using a simple header of up to 1024
 1010 # offsets for the respective PCX components.
 1011 # From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
 1012 0	lelong	987654321	DCX multi-page PCX image data
 1013 
 1014 # Simon Walton <simonw@matteworld.com>
 1015 # Kodak Cineon format for scanned negatives
 1016 # http://www.kodak.com/US/en/motion/support/dlad/
 1017 0	lelong  0xd75f2a80	Cineon image data
 1018 >200	belong  >0		\b, %d x
 1019 >204	belong  >0		%d
 1020 
 1021 
 1022 # Bio-Rad .PIC is an image format used by microscope control systems
 1023 # and related image processing software used by biologists.
 1024 # From: Vebjorn Ljosa <vebjorn@ljosa.com>
 1025 # BOOL values are two-byte integers; use them to rule out false positives.
 1026 # http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
 1027 # Samples: http://www.loci.wisc.edu/software/sample-data
 1028 14	leshort <2
 1029 >62	leshort <2
 1030 >>54	leshort 12345		Bio-Rad .PIC Image File
 1031 >>>0	leshort >0		%d x
 1032 >>>2	leshort >0		%d,
 1033 >>>4	leshort =1		1 image in file
 1034 >>>4	leshort >1		%d images in file
 1035 
 1036 # From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
 1037 # The description of *.mrw format can be found at
 1038 # http://www.dalibor.cz/minolta/raw_file_format.htm
 1039 0	string	\000MRM			Minolta Dimage camera raw image data
 1040 
 1041 # Summary: DjVu image / document
 1042 # Extension: .djvu
 1043 # Reference: http://djvu.org/docs/DjVu3Spec.djvu
 1044 # Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
 1045 # Modified by (1): Abel Cheung <abelcheung@gmail.com>
 1046 0	string	AT&TFORM
 1047 >12	string	DJVM		DjVu multiple page document
 1048 !:mime	image/vnd.djvu
 1049 >12	string	DJVU		DjVu image or single page document
 1050 !:mime	image/vnd.djvu
 1051 >12	string	DJVI		DjVu shared document
 1052 !:mime	image/vnd.djvu
 1053 >12	string	THUM		DjVu page thumbnails
 1054 !:mime	image/vnd.djvu
 1055 
 1056 # Originally by Marc Espie
 1057 # Modified by Robert Minsk <robertminsk at yahoo.com>
 1058 # http://www.openexr.com/openexrfilelayout.pdf
 1059 0	lelong		20000630	OpenEXR image data,
 1060 !:mime image/x-exr
 1061 >4	lelong&0x000000ff x		version %d,
 1062 >4	lelong		^0x00000200	storage: scanline
 1063 >4	lelong		&0x00000200	storage: tiled
 1064 >8	search/0x1000	compression\0	\b, compression:
 1065 >>&16	byte		0		none
 1066 >>&16	byte		1		rle
 1067 >>&16	byte		2		zips
 1068 >>&16	byte		3		zip
 1069 >>&16	byte		4		piz
 1070 >>&16	byte		5		pxr24
 1071 >>&16	byte		6		b44
 1072 >>&16	byte		7		b44a
 1073 >>&16	byte		8		dwaa
 1074 >>&16	byte		9		dwab
 1075 >>&16	byte		>9		unknown
 1076 >8	 search/0x1000	dataWindow\0	\b, dataWindow:
 1077 >>&10	lelong		x		(%d
 1078 >>&14	lelong		x		%d)-
 1079 >>&18	lelong		x		\b(%d
 1080 >>&22	lelong		x		%d)
 1081 >8	search/0x1000	displayWindow\0	\b, displayWindow:
 1082 >>&10	lelong		x		(%d
 1083 >>&14	lelong		x		%d)-
 1084 >>&18	lelong		x		\b(%d
 1085 >>&22	lelong		x		%d)
 1086 >8	search/0x1000	lineOrder\0	 \b, lineOrder:
 1087 >>&14	byte		0		increasing y
 1088 >>&14	byte		1		decreasing y
 1089 >>&14	byte		2		random y
 1090 >>&14	byte		>2		unknown
 1091 
 1092 # SMPTE Digital Picture Exchange Format, SMPTE DPX
 1093 #
 1094 # ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
 1095 # Moving-Picture Exchange (DPX), v1.0, 18 February 1994
 1096 # Robert Minsk <robertminsk at yahoo.com>
 1097 # Modified by Harry Mallon <hjmallon at gmail.com>
 1098 0	string		SDPX	DPX image data, big-endian,
 1099 !:mime image/x-dpx
 1100 >0	use		dpx_info
 1101 0	string		XPDS	DPX image data, little-endian,
 1102 !:mime image/x-dpx
 1103 >0	use		\^dpx_info
 1104 
 1105 0	name		dpx_info
 1106 >768	beshort		<4
 1107 >>772	belong		x	%dx
 1108 >>776	belong		x	\b%d,
 1109 >768	beshort		>3
 1110 >>776	belong		x	%dx
 1111 >>772	belong		x	\b%d,
 1112 >768	beshort		0	left to right/top to bottom
 1113 >768	beshort		1	right to left/top to bottom
 1114 >768	beshort		2	left to right/bottom to top
 1115 >768	beshort		3	right to left/bottom to top
 1116 >768	beshort		4	top to bottom/left to right
 1117 >768	beshort		5	top to bottom/right to left
 1118 >768	beshort		6	bottom to top/left to right
 1119 >768	beshort		7	bottom to top/right to left
 1120 
 1121 # From: Tom Hilinski <tom.hilinski@comcast.net>
 1122 # http://www.unidata.ucar.edu/packages/netcdf/
 1123 0	string	CDF\001			NetCDF Data Format data
 1124 
 1125 #-----------------------------------------------------------------------
 1126 # Hierarchical Data Format, used to facilitate scientific data exchange
 1127 # specifications at http://hdf.ncsa.uiuc.edu/
 1128 0	belong	0x0e031301	Hierarchical Data Format (version 4) data
 1129 !:mime	application/x-hdf
 1130 0	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) data
 1131 !:mime	application/x-hdf
 1132 512	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 512 bytes user block
 1133 !:mime	application/x-hdf
 1134 1024	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 1k user block
 1135 !:mime	application/x-hdf
 1136 2048	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 2k user block
 1137 !:mime	application/x-hdf
 1138 4096	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) with 4k user block
 1139 !:mime	application/x-hdf
 1140 
 1141 
 1142 # From: Tobias Burnus <burnus@net-b.de>
 1143 # Xara (for a while: Corel Xara) is a graphic package, see
 1144 # http://www.xara.com/ for Windows and as GPL application for Linux
 1145 0	string	XARA\243\243	Xara graphics file
 1146 
 1147 # http://www.cartesianinc.com/Tech/
 1148 0	string	CPC\262		Cartesian Perceptual Compression image
 1149 !:mime	image/x-cpi
 1150 
 1151 # From Albert Cahalan <acahalan@gmail.com>
 1152 # puredigital used it for the CVS disposable camcorder
 1153 #8       lelong  4       ZBM bitmap image data
 1154 #>4      leshort x       %u x
 1155 #>6      leshort x       %u
 1156 
 1157 # From Albert Cahalan <acahalan@gmail.com>
 1158 # uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
 1159 0       string C565     OLPC firmware icon image data
 1160 >4      leshort x       %u x
 1161 >6      leshort x       %u
 1162 
 1163 # Applied Images - Image files from Cytovision
 1164 # Gustavo Junior Alves <gjalves@gjalves.com.br>
 1165 0	string	\xce\xda\xde\xfa	Cytovision Metaphases file
 1166 0	string	\xed\xad\xef\xac	Cytovision Karyotype file
 1167 0	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
 1168 0	string	\xed\xfe\xda\xbe	Cytovision FLEX file
 1169 0	string	\xed\xab\xed\xfe	Cytovision FLEX file
 1170 0	string	\xad\xfd\xea\xad	Cytovision RATS file
 1171 
 1172 # Wavelet Scalar Quantization format used in gray-scale fingerprint images
 1173 # From Tano M Fotang <mfotang@quanteq.com>
 1174 0	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
 1175 
 1176 # Type:		PCO B16 image files
 1177 # URL:		http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
 1178 # From:		Florian Philipp <florian.philipp@binarywings.net>
 1179 # Extension:	.b16
 1180 # Description:	Pixel image format produced by PCO Camware, typically used
 1181 #		together with PCO cameras.
 1182 # Note:		Different versions exist for e.g. 8 bit and 16 bit images.
 1183 #		Documentation is incomplete.
 1184 0	string/b	PCO-	PCO B16 image data
 1185 >12	lelong		x	\b, %dx
 1186 >16	lelong		x	\b%d
 1187 >20	lelong		0	\b, short header
 1188 >20	lelong		-1	\b, extended header
 1189 >>24	lelong		0	\b, grayscale
 1190 >>>36	lelong		0	linear LUT
 1191 >>>36	lelong		1	logarithmic LUT
 1192 >>>28	lelong		x	[%d
 1193 >>>32	lelong		x	\b,%d]
 1194 >>24	lelong		1	\b, color
 1195 >>>64	lelong		0	linear LUT
 1196 >>>64	lelong		1	logarithmic LUT
 1197 >>>40	lelong		x	r[%d
 1198 >>>44	lelong		x	\b,%d]
 1199 >>>48	lelong		x	g[%d
 1200 >>>52	lelong		x	\b,%d]
 1201 >>>56	lelong		x	b[%d
 1202 >>>60	lelong		x	\b,%d]
 1203 
 1204 # Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
 1205 # From: Markus Heidelberg <markus.heidelberg at web.de>
 1206 0	string/t	[BitmapInfo2]	Polar Monitor Bitmap text
 1207 !:mime	image/x-polar-monitor-bitmap
 1208 
 1209 # From: Rick Richardson <rickrich@gmail.com>
 1210 # updated by: Joerg Jenderek
 1211 # URL: http://techmods.net/nuvi/
 1212 0	string	GARMIN\ BITMAP\ 01	Garmin Bitmap file
 1213 # extension is also used for
 1214 # Sony SRF raw image (image/x-sony-srf)
 1215 # SRF map
 1216 # Terragen Surface Map (http://www.planetside.co.uk/terragen)
 1217 # FileLocator Pro search criteria file (http://www.mythicsoft.com/filelocatorpro)
 1218 !:ext srf
 1219 #!:mime	image/x-garmin-srf
 1220 # version 1.00,2.00,2.10,2.40,2.50
 1221 >0x2f	string		>0		\b, version %4.4s
 1222 # width (2880,2881,3240)
 1223 >0x55	uleshort	>0		\b, %dx
 1224 # height (80,90)
 1225 >>0x53	uleshort	x		\b%d
 1226 
 1227 # Type:	Ulead Photo Explorer5 (.pe5)
 1228 # URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
 1229 # From:	Simon Horman <horms@debian.org>
 1230 0	string	IIO2H			Ulead Photo Explorer5
 1231 
 1232 # Type:	X11 cursor
 1233 # URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
 1234 # From:	Mathias Brodala <info@noctus.net>
 1235 0	string	Xcur			X11 cursor
 1236 
 1237 # Type:	Olympus ORF raw images.
 1238 # URL:	http://libopenraw.freedesktop.org/wiki/Olympus_ORF
 1239 # From:	Adam Buchbinder <adam.buchbinder@gmail.com>
 1240 0	string		MMOR		Olympus ORF raw image data, big-endian
 1241 !:mime	image/x-olympus-orf
 1242 0	string		IIRO		Olympus ORF raw image data, little-endian
 1243 !:mime	image/x-olympus-orf
 1244 0	string		IIRS		Olympus ORF raw image data, little-endian
 1245 !:mime	image/x-olympus-orf
 1246 
 1247 # Type: files used in modern AVCHD camcoders to store clip information
 1248 # Extension: .cpi
 1249 # From: Alexander Danilov <alexander.a.danilov@gmail.com>
 1250 0	string	HDMV0100	AVCHD Clip Information
 1251 
 1252 # From: Adam Buchbinder <adam.buchbinder@gmail.com>
 1253 # URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
 1254 # Radiance HDR; usually has .pic or .hdr extension.
 1255 0	string	#?RADIANCE\n	Radiance HDR image data
 1256 #!mime	image/vnd.radiance
 1257 
 1258 # From: Adam Buchbinder <adam.buchbinder@gmail.com>
 1259 # URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
 1260 # Used by the pfstools packages. The regex matches for the image size could
 1261 # probably use some work. The MIME type is made up; if there's one in
 1262 # actual common use, it should replace the one below.
 1263 0	string	PFS1\x0a	PFS HDR image data
 1264 #!mime	image/x-pfs
 1265 >1	regex	[0-9]*\ 		\b, %s
 1266 >>1	regex	\ [0-9]{4}		\bx%s
 1267 
 1268 # Type: Foveon X3F
 1269 # URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
 1270 # From: Adam Buchbinder <adam.buchbinder@gmail.com>
 1271 # Note that the MIME type isn't defined anywhere that I can find; if
 1272 # there's a canonical type for this format, it should replace this one.
 1273 0	string	FOVb	Foveon X3F raw image data
 1274 !:mime	image/x-x3f
 1275 >6	leshort	x	\b, version %d.
 1276 >4	leshort	x	\b%d
 1277 >28	lelong	x	\b, %dx
 1278 >32	lelong	x	\b%d
 1279 
 1280 # Paint.NET file
 1281 # From Adam Buchbinder <adam.buchbinder@gmail.com>
 1282 0	string	PDN3	Paint.NET image data
 1283 !:mime	image/x-paintnet
 1284 
 1285 # Not really an image.
 1286 # From: "Tano M. Fotang" <mfotang@quanteq.com>
 1287 0	string	\x46\x4d\x52\x00	ISO/IEC 19794-2 Format Minutiae Record (FMR)
 1288 
 1289 # doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
 1290 # example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
 1291 90	bequad		0x574D50484F544F00	JPEG-XR Image
 1292 >98	byte&0x08	=0x08			\b, hard tiling
 1293 >99	byte&0x80	=0x80			\b, tiling present
 1294 >99	byte&0x40	=0x40			\b, codestream present
 1295 >99	byte&0x38	x			\b, spatial xform=
 1296 >99	byte&0x38	0x00			\bTL
 1297 >99	byte&0x38	0x08			\bBL
 1298 >99	byte&0x38	0x10			\bTR
 1299 >99	byte&0x38	0x18			\bBR
 1300 >99	byte&0x38	0x20			\bBT
 1301 >99	byte&0x38	0x28			\bRB
 1302 >99	byte&0x38	0x30			\bLT
 1303 >99	byte&0x38	0x38			\bLB
 1304 >100	byte&0x80	=0x80			\b, short header
 1305 >>102	beshort+1	x			\b, %d
 1306 >>104	beshort+1	x			\bx%d
 1307 >100	byte&0x80	=0x00			\b, long header
 1308 >>102	belong+1	x			\b, %x
 1309 >>106	belong+1	x			\bx%x
 1310 >101	beshort&0xf	x			\b, bitdepth=
 1311 >>101	beshort&0xf	0x0			\b1-WHITE=1
 1312 >>101	beshort&0xf	0x1			\b8
 1313 >>101	beshort&0xf	0x2			\b16
 1314 >>101	beshort&0xf	0x3			\b16-SIGNED
 1315 >>101	beshort&0xf	0x4			\b16-FLOAT
 1316 >>101	beshort&0xf	0x5			\b(reserved 5)
 1317 >>101	beshort&0xf	0x6			\b32-SIGNED
 1318 >>101	beshort&0xf	0x7			\b32-FLOAT
 1319 >>101	beshort&0xf	0x8			\b5
 1320 >>101	beshort&0xf	0x9			\b10
 1321 >>101	beshort&0xf	0xa			\b5-6-5
 1322 >>101	beshort&0xf	0xb			\b(reserved %d)
 1323 >>101	beshort&0xf	0xc			\b(reserved %d)
 1324 >>101	beshort&0xf	0xd			\b(reserved %d)
 1325 >>101	beshort&0xf	0xe			\b(reserved %d)
 1326 >>101	beshort&0xf	0xf			\b1-BLACK=1
 1327 >101	beshort&0xf0	x			\b, colorfmt=
 1328 >>101	beshort&0xf0	0x00			\bYONLY
 1329 >>101	beshort&0xf0	0x10			\bYUV240
 1330 >>101	beshort&0xf0	0x20			\bYWV422
 1331 >>101	beshort&0xf0	0x30			\bYWV444
 1332 >>101	beshort&0xf0	0x40			\bCMYK
 1333 >>101	beshort&0xf0	0x50			\bCMYKDIRECT
 1334 >>101	beshort&0xf0	0x60			\bNCOMPONENT
 1335 >>101	beshort&0xf0	0x70			\bRGB
 1336 >>101	beshort&0xf0	0x80			\bRGBE
 1337 >>101	beshort&0xf0	>0x80			\b(reserved 0x%x)
 1338 
 1339 # From: Johan van der Knijff <johan.vanderknijff@kb.nl>
 1340 #
 1341 # BPG (Better Portable Graphics) format
 1342 # http://bellard.org/bpg/
 1343 # http://fileformats.archiveteam.org/wiki/BPG
 1344 #
 1345 0	string	\x42\x50\x47\xFB	BPG (Better Portable Graphics)
 1346 !:mime  image/bpg
 1347 
 1348 # From: Joerg Jenderek
 1349 # URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format
 1350 0	string		icns		Mac OS X icon
 1351 !:mime	image/x-icns
 1352 !:apple	????icns
 1353 !:ext icns
 1354 >4	ubelong		>0
 1355 # file size
 1356 >>4	ubelong		x		\b, %d bytes
 1357 # icon type
 1358 >>8	string		x		\b, "%4.4s" type
 1359 
 1360 # TIM images
 1361 0		lelong		0x00000010	TIM image,
 1362 >4		lelong  	0x8		4-Bit,
 1363 >4		lelong  	0x9		8-Bit,
 1364 >4		lelong  	0x2		15-Bit,
 1365 >4		lelong  	0x3		24-Bit,
 1366 >4		lelong 		&8
 1367 >>(8.l+12)	leshort		x		Pixel at (%d,
 1368 >>(8.l+14)	leshort		x		\b%d)
 1369 >>(8.l+16)	leshort		x		Size=%dx
 1370 >>(8.l+18)	leshort		x		\b%d,
 1371 >>4		lelong 		0x8		16 CLUT Entries at
 1372 >>4		lelong 		0x9		256 CLUT Entries at
 1373 >>12		leshort		x		(%d,
 1374 >>14		leshort		x		\b%d)
 1375 >4		lelong		^8
 1376 >>12		leshort		x		Pixel at (%d,
 1377 >>14		leshort		x		\b%d)
 1378 >>16		leshort		x		Size=%dx
 1379 >>18		leshort		x		\b%d
 1380 
 1381 # MDEC streams
 1382 0		lelong		0x80010160	MDEC video stream,
 1383 >16		leshort		x		%dx
 1384 >18		leshort		x		\b%d
 1385 #>8		lelong		x		%d frames
 1386 #>4		leshort		x		secCount=%d;
 1387 #>6		leshort		x		nSectors=%d;
 1388 #>12		lelong		x		frameSize=%d;
 1389 
 1390 # BS encoded bitstreams
 1391 2		leshort		0x3800		BS image,
 1392 >6		leshort		x		Version %d,
 1393 >4		leshort		x		Quantization %d,
 1394 >0		leshort		x		(Decompresses to %d words)
 1395 
 1396 # Type: farbfeld image.
 1397 # Url: http://tools.suckless.org/farbfeld/
 1398 # From: Ian D. Scott <ian@iandouglasscott.com>
 1399 #
 1400 0		string		farbfeld	farbfeld image data,
 1401 >8		ubelong		x		%dx
 1402 >12		ubelong		x		\b%d
 1403 
 1404 # Type: Microsoft DirectDraw Surface (common data)
 1405 # URL:	http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
 1406 # From: Morten Hustveit <morten@debian.org>
 1407 # Updated by: David Korth <gerbilsoft@gerbilsoft.com>
 1408 0	name	ms-directdraw-surface
 1409 >0x10	ulelong	x			%u x
 1410 >0x0C	ulelong	x			%u
 1411 # Color depth.
 1412 >0x58	ulelong	>0			\b, %u-bit color
 1413 # Determine the pixel format.
 1414 >0x50	ulelong&0x4	4
 1415 # FIXME: Handle DX10 and XBOX formats.
 1416 >>0x54	string	x			\b, compressed using %.4s
 1417 >0x50	ulelong&0x2	0x2		\b, alpha only
 1418 >0x50	ulelong&0x200	0x200		\b, YUV
 1419 >0x50	ulelong&0x20000	0x20000		\b, luminance
 1420 # RGB pixel format
 1421 >0x50	ulelong&0x40	0x40
 1422 
 1423 # Determine the RGB format using the color masks.
 1424 # ulequad order: 0xGGGGGGGGRRRRRRRR, 0xAAAAAAAABBBBBBBB
 1425 
 1426 >>0x58		ulelong	16
 1427 
 1428 # NOTE: 15-bit color formats usually have 16-bit listed as the color depth.
 1429 >>>0x5C		ulequad	0x000003E000007C00
 1430 >>>>0x64	ulequad 0x000000000000001F	\b, RGB555
 1431 >>>0x5C		ulequad	0x000003E000001F00
 1432 >>>>0x64	ulequad 0x000000000000007C	\b, BGR555
 1433 
 1434 >>>0x5C		ulequad	0x000007E00000F800
 1435 >>>>0x64	ulequad 0x000000000000001F	\b, RGB565
 1436 >>>0x5C		ulequad	0x000007E000001F00
 1437 >>>>0x64	ulequad 0x00000000000000F8	\b, BGR565
 1438 
 1439 >>>0x5C		ulequad	0x000000F000000F00
 1440 >>>>0x64	ulequad 0x0000F0000000000F	\b, ARGB4444
 1441 >>>0x5C		ulequad	0x000000F00000000F
 1442 >>>>0x64	ulequad 0x0000F00000000F00	\b, ABGR4444
 1443 
 1444 >>>0x5C		ulequad	0x00000F000000F000
 1445 >>>>0x64	ulequad 0x0000000F000000F0	\b, RGBA4444
 1446 >>>0x5C		ulequad	0x00000F00000000F0
 1447 >>>>0x64	ulequad 0x0000000F0000F000	\b, BGRA4444
 1448 
 1449 >>>0x5C		ulequad	0x000000F000000F00
 1450 >>>>0x64	ulequad 0x000000000000000F	\b, xRGB4444
 1451 >>>0x5C		ulequad	0x000000F00000000F
 1452 >>>>0x64	ulequad 0x0000000000000F00	\b, xBGR4444
 1453 
 1454 >>>0x5C		ulequad	0x00000F000000F000
 1455 >>>>0x64	ulequad 0x00000000000000F0	\b, RGBx4444
 1456 >>>0x5C		ulequad	0x00000F00000000F0
 1457 >>>>0x64	ulequad 0x000000000000F000	\b, BGRx4444
 1458 
 1459 >>>0x5C		ulequad	0x000003E000007C00
 1460 >>>>0x64	ulequad 0x000080000000001F	\b, ARGB1555
 1461 >>>0x5C		ulequad	0x000003E000001F00
 1462 >>>>0x64	ulequad 0x000080000000007C	\b, ABGR1555
 1463 >>>0x5C		ulequad	0x000007C00000F800
 1464 >>>>0x64	ulequad 0x000000010000003E	\b, RGBA5551
 1465 >>>0x5C		ulequad	0x000007C00000003E
 1466 >>>>0x64	ulequad 0x000000010000F800	\b, BGRA5551
 1467 
 1468 >>88		ulelong 24
 1469 >>>0x5C		ulequad	0x0000FF0000FF0000
 1470 >>>>0x64	ulequad 0x00000000000000FF	\b, RGB888
 1471 >>>0x5C		ulequad	0x0000FF00000000FF
 1472 >>>>0x64	ulequad 0x0000000000FF0000	\b, BGR888
 1473 
 1474 >>88		ulelong 32
 1475 >>>0x5C		ulequad	0x0000FF0000FF0000
 1476 >>>>0x64	ulequad 0xFF000000000000FF	\b, ARGB8888
 1477 >>>0x5C		ulequad	0x0000FF00000000FF
 1478 >>>>0x64	ulequad 0xFF00000000FF0000	\b, ABGR8888
 1479 
 1480 >>>0x5C		ulequad	0x00FF0000FF000000
 1481 >>>>0x64	ulequad 0x000000FF0000FF00	\b, RGBA8888
 1482 >>>0x5C		ulequad	0x00FF00000000FF00
 1483 >>>>0x64	ulequad 0x000000FFFF000000	\b, BGBA8888
 1484 
 1485 >>>0x5C		ulequad	0x0000FF0000FF0000
 1486 >>>>0x64	ulequad 0x00000000000000FF	\b, xRGB8888
 1487 >>>0x5C		ulequad	0x0000FF00000000FF
 1488 >>>>0x64	ulequad 0x0000000000FF0000	\b, xBGR8888
 1489 
 1490 >>>0x5C		ulequad	0x00FF0000FF000000
 1491 >>>>0x64	ulequad 0x000000000000FF00	\b, RGBx8888
 1492 >>>0x5C		ulequad	0x00FF00000000FF00
 1493 >>>>0x64	ulequad 0x00000000FF000000	\b, BGBx8888
 1494 
 1495 # Less common 32-bit color formats.
 1496 >>>0x5C		ulequad	0xFFFF00000000FFFF
 1497 >>>>0x64	ulequad 0x0000000000000000	\b, G16R16
 1498 >>>0x5C		ulequad	0x0000FFFFFFFF0000
 1499 >>>>0x64	ulequad 0x0000000000000000	\b, R16G16
 1500 
 1501 >>>0x5C		ulequad	0x000FFC003FF00000
 1502 >>>>0x64	ulequad 0xC0000000000003FF	\b, A2R10G10B10
 1503 >>>0x5C		ulequad	0x000FFC00000003FF
 1504 >>>>0x64	ulequad 0xC00000003FF00000	\b, A2B10G10R10
 1505 
 1506 # Type: Microsoft DirectDraw Surface
 1507 # URL:	http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
 1508 # From: Morten Hustveit <morten@debian.org>
 1509 # Updated by: David Korth <gerbilsoft@gerbilsoft.com>
 1510 0	string/b	DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS):
 1511 >0	use	ms-directdraw-surface
 1512 
 1513 # Type: Sega PVR image.
 1514 # From: David Korth <gerbilsoft@gerbilsoft.com>
 1515 # References:
 1516 # - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
 1517 # - https://github.com/yazgoo/pvrx2png
 1518 # - https://github.com/nickworonekin/puyotools
 1519 
 1520 # Sega PVR header.
 1521 0	name	sega-pvr-image-header
 1522 >0x0C	leshort	x	%u x
 1523 >0x0E	leshort	x	%u
 1524 # Image format.
 1525 >0x08	byte	0	\b, ARGB1555
 1526 >0x08	byte	1	\b, RGB565
 1527 >0x08	byte	2	\b, ARGB4444
 1528 >0x08	byte	3	\b, YUV442
 1529 >0x08	byte	4	\b, Bump
 1530 >0x08	byte	5	\b, 4bpp
 1531 >0x08	byte	6	\b, 8bpp
 1532 # Image data type.
 1533 >0x09	byte	0x01	\b, square twiddled
 1534 >0x09	byte	0x02	\b, square twiddled & mipmap
 1535 >0x09	byte	0x03	\b, VQ
 1536 >0x09	byte	0x04	\b, VQ & mipmap
 1537 >0x09	byte	0x05	\b, 8-bit CLUT twiddled
 1538 >0x09	byte	0x06	\b, 4-bit CLUT twiddled
 1539 >0x09	byte	0x07	\b, 8-bit direct twiddled
 1540 >0x09	byte	0x08	\b, 4-bit direct twiddled
 1541 >0x09	byte	0x09	\b, rectangle
 1542 >0x09	byte	0x0B	\b, rectangular stride
 1543 >0x09	byte	0x0D	\b, rectangular twiddled
 1544 >0x09	byte	0x10	\b, small VQ
 1545 >0x09	byte	0x11	\b, small VQ & mipmap
 1546 >0x09	byte	0x12	\b, square twiddled & mipmap
 1547 
 1548 # Sega PVR image.
 1549 0	string	PVRT
 1550 >0x10	string	DDS\040\174\000\000\000 Sega PVR (Xbox) image:
 1551 >>0x20	use	ms-directdraw-surface
 1552 >0x10	belong	!0x44445320		Sega PVR image:
 1553 >>0	use	sega-pvr-image-header
 1554 
 1555 # Sega PVR image with GBIX.
 1556 0	string	GBIX
 1557 >0x10	string	PVRT
 1558 >>0x10	string	DDS\040\174\000\000\000 Sega PVR (Xbox) image:
 1559 >>0x20	use	ms-directdraw-surface
 1560 >>0x10	belong	!0x44445320		Sega PVR image:
 1561 >>>0x10	use	sega-pvr-image-header
 1562 >>0x08	lelong	x	\b, global index = %u
 1563 
 1564 # Sega GVR header.
 1565 0	name	sega-gvr-image-header
 1566 >0x0C	beshort	x	%u x
 1567 >0x0E	beshort	x	%u
 1568 # Image data format.
 1569 >0x0B	byte	0	\b, I4
 1570 >0x0B	byte	1	\b, I8
 1571 >0x0B	byte	2	\b, IA4
 1572 >0x0B	byte	3	\b, IA8
 1573 >0x0B	byte	4	\b, RGB565
 1574 >0x0B	byte	5	\b, RGB5A3
 1575 >0x0B	byte	6	\b, ARGB8888
 1576 >0x0B	byte	8	\b, CI4
 1577 >0x0B	byte	9	\b, CI8
 1578 >0x0B	byte	14	\b, DXT1
 1579 
 1580 # Sega GVR image.
 1581 0	string	GVRT	Sega GVR image:
 1582 >0x10	use	sega-gvr-image-header
 1583 
 1584 # Sega GVR image with GBIX.
 1585 0	string	GBIX
 1586 >0x10	string	GVRT	Sega GVR image:
 1587 >>0x10	use	sega-gvr-image-header
 1588 >>0x08	belong	x	\b, global index = %u
 1589 
 1590 # Sega GVR image with GCIX. (Wii)
 1591 0	string	GCIX
 1592 >0x10	string	GVRT	Sega GVR image:
 1593 >>0x10	use	sega-gvr-image-header
 1594 >>0x08	belong	x	\b, global index = %u
 1595 
 1596 # Light Field Picture
 1597 # Documentation: http://optics.miloush.net/lytro/TheFileFormat.aspx
 1598 # Typical file extensions: .lfp .lfr .lfx
 1599 
 1600 0	belong	0x894C4650
 1601 >4	belong	0x0D0A1A0A
 1602 >12	belong	0x00000000	Lytro Light Field Picture
 1603 >8	belong	x		\b, version %d
 1604 
 1605 # Type: Vision Research Phantom CINE Format
 1606 # URL: https://www.phantomhighspeed.com/
 1607 # URL2: http://phantomhighspeed.force.com/vriknowledge/servlet/fileField?id=0BEU0000000Cfyk
 1608 # From: Harry Mallon <hjmallon at gmail.com>
 1609 #
 1610 # This has a short "CI" code but the 44 is the size of the struct which is
 1611 # stable
 1612 0	string	CI
 1613 >2	leshort 44		Vision Research CINE Video,
 1614 >>4	leshort	0		Grayscale,
 1615 >>4	leshort 1		JPEG Compressed,
 1616 >>4	leshort 2		RAW,
 1617 >>6	leshort x		version %d,
 1618 >>20	lelong	x		%d frames,
 1619 >>48	lelong	x		%dx
 1620 >>52	lelong	x		\b%d
 1621 
 1622 # Type: ARRI Raw Image
 1623 # Info: SMPTE RDD30:2014
 1624 # From: Harry Mallon <hjmallon at gmail.com>
 1625 0	string ARRI		ARRI ARI image data,
 1626 >4	lelong 0x78563412	little-endian,
 1627 >4 	lelong 0x12345678	big-endian,
 1628 >12	lelong x		version %d,
 1629 >20	lelong x 		%dx
 1630 >24	lelong x		\b%d
 1631 
 1632 # Type: Khronos KTX texture.
 1633 # From: David Korth <gerbilsoft@gerbilsoft.com>
 1634 # References:
 1635 # - https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/
 1636 
 1637 # glEnum decoding.
 1638 # NOTE: Only the most common formats are listed here.
 1639 0	name	khronos-ktx-glEnum
 1640 >0	lelong	0x1907	\b, RGB
 1641 >0	lelong	0x1908	\b, RGBA
 1642 >0	lelong	0x1909	\b, LUMINANCE
 1643 >0	lelong	0x190A	\b, LUMINANCE_ALPHA
 1644 >0	lelong	0x80E1	\b, BGR
 1645 >0	lelong	0x80E2	\b, BGRA
 1646 >0	lelong	0x83A0	\b, RGB_S3TC
 1647 >0	lelong	0x83A1	\b, RGB4_S3TC
 1648 >0	lelong	0x83A2	\b, RGBA_S3TC
 1649 >0	lelong	0x83A3	\b, RGBA4_S3TC
 1650 >0	lelong	0x83A4	\b, RGBA_DXT5_S3TC
 1651 >0	lelong	0x83A5	\b, RGBA4_DXT5_S3TC
 1652 >0	lelong	0x8D64	\b, ETC1_RGB8_OES
 1653 >0	lelong	0x9270	\b, COMPRESSED_R11_EAC
 1654 >0	lelong	0x9271	\b, COMPRESSED_SIGNED_R11_EAC
 1655 >0	lelong	0x9272	\b, COMPRESSED_RG11_EAC
 1656 >0	lelong	0x9273	\b, COMPRESSED_SIGNED_RG11_EAC
 1657 >0	lelong	0x9274	\b, COMPRESSED_RGB8_ETC2
 1658 >0	lelong	0x9275	\b, COMPRESSED_SRGB8_ETC2
 1659 >0	lelong	0x9276	\b, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
 1660 >0	lelong	0x9277	\b, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
 1661 >0	lelong	0x9278	\b, COMPRESSED_RGBA2_ETC2_EAC
 1662 >0	lelong	0x9279	\b, COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
 1663 >0	lelong	0x93B0	\b, COMPRESSED_RGBA_ASTC_4x4_KHR
 1664 >0	lelong	0x93B1	\b, COMPRESSED_RGBA_ASTC_5x4_KHR
 1665 >0	lelong	0x93B2	\b, COMPRESSED_RGBA_ASTC_5x5_KHR
 1666 >0	lelong	0x93B3	\b, COMPRESSED_RGBA_ASTC_6x5_KHR
 1667 >0	lelong	0x93B4	\b, COMPRESSED_RGBA_ASTC_6x6_KHR
 1668 >0	lelong	0x93B5	\b, COMPRESSED_RGBA_ASTC_8x5_KHR
 1669 >0	lelong	0x93B6	\b, COMPRESSED_RGBA_ASTC_8x6_KHR
 1670 >0	lelong	0x93B7	\b, COMPRESSED_RGBA_ASTC_8x8_KHR
 1671 >0	lelong	0x93B8	\b, COMPRESSED_RGBA_ASTC_10x5_KHR
 1672 >0	lelong	0x93B9	\b, COMPRESSED_RGBA_ASTC_10x6_KHR
 1673 >0	lelong	0x93BA	\b, COMPRESSED_RGBA_ASTC_10x8_KHR
 1674 >0	lelong	0x93BB	\b, COMPRESSED_RGBA_ASTC_10x10_KHR
 1675 >0	lelong	0x93BC	\b, COMPRESSED_RGBA_ASTC_12x10_KHR
 1676 >0	lelong	0x93BD	\b, COMPRESSED_RGBA_ASTC_12x12_KHR
 1677 >0	lelong	0x93D0	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
 1678 >0	lelong	0x93D1	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
 1679 >0	lelong	0x93D2	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
 1680 >0	lelong	0x93D3	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
 1681 >0	lelong	0x93D4	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
 1682 >0	lelong	0x93D5	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
 1683 >0	lelong	0x93D6	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
 1684 >0	lelong	0x93D7	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
 1685 >0	lelong	0x93D8	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
 1686 >0	lelong	0x93D9	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
 1687 >0	lelong	0x93DA	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
 1688 >0	lelong	0x93DB	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
 1689 >0	lelong	0x93DC	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
 1690 >0	lelong	0x93DD	\b, COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
 1691 
 1692 # Endian-specific KTX header.
 1693 # TODO: glType (all textures I've seen so far are GL_UNSIGNED_BYTE)
 1694 0	name	khronos-ktx-endian-header
 1695 >20	lelong	x	\b, %u
 1696 >24	lelong	>1	x %u
 1697 >28	lelong	>1	x %u
 1698 >8	lelong	>0
 1699 >>8	use	khronos-ktx-glEnum
 1700 >8	lelong	0
 1701 >>12	use	khronos-ktx-glEnum
 1702 
 1703 # Main KTX header.
 1704 # Determine endianness, then check the rest of the header.
 1705 0	string	\xABKTX\ 11\xBB\r\n\x1A\n	Khronos KTX texture
 1706 >12	lelong	0x04030201			(little-endian)
 1707 >>16	use	khronos-ktx-endian-header
 1708 >12	belong	0x04030201			(big-endian)
 1709 >>16	use	^khronos-ktx-endian-header
 1710 
 1711 # Type: Valve VTF texture.
 1712 # From: David Korth <gerbilsoft@gerbilsoft.com>
 1713 # References:
 1714 # - https://developer.valvesoftware.com/wiki/Valve_Texture_Format
 1715 
 1716 # VTF image formats.
 1717 0	name	vtf-image-format
 1718 >0	lelong	0	RGBA8888
 1719 >0	lelong	1	ABGR8888
 1720 >0	lelong	2	RGB888
 1721 >0	lelong	3	BGR888
 1722 >0	lelong	4	RGB565
 1723 >0	lelong	5	I8
 1724 >0	lelong	6	IA88
 1725 >0	lelong	7	P8
 1726 >0	lelong	8	A8
 1727 >0	lelong	9	RGB888 (bluescreen)
 1728 >0	lelong	10	BGR888 (bluescreen)
 1729 >0	lelong	11	ARGB8888
 1730 >0	lelong	12	BGRA8888
 1731 >0	lelong	13	DXT1
 1732 >0	lelong	14	DXT3
 1733 >0	lelong	15	DXT5
 1734 >0	lelong	16	BGRx8888
 1735 >0	lelong	17	BGR565
 1736 >0	lelong	18	BGRx5551
 1737 >0	lelong	19	BGRA4444
 1738 >0	lelong	20	DXT1+A1
 1739 >0	lelong	21	BGRA5551
 1740 >0	lelong	22	UV88
 1741 >0	lelong	23	UVWQ8888
 1742 >0	lelong	24	RGBA16161616F
 1743 >0	lelong	25	RGBA16161616
 1744 >0	lelong	26	UVLX8888
 1745 
 1746 # Main VTF header.
 1747 0	string	VTF\0				Valve Texture Format
 1748 >4	lelong	x				v%u
 1749 >8	lelong	x				\b.%u
 1750 >0x10	leshort	x				\b, %u
 1751 >0x12	leshort	>1				x %u
 1752 >4	lequad	0x0000000700000002
 1753 >>0x3F	leshort	>1				x %u
 1754 >0x18	leshort	>1				\b, %u frames
 1755 >0x38	byte	x				\b, mipmaps: %u
 1756 >0x34	lelong	>-1				\b,
 1757 >>0x34	use	vtf-image-format
 1758 
 1759 # Type: Valve VTF3 (PS3) texture.
 1760 # From: David Korth <gerbilsoft@gerbilsoft.com>
 1761 0	string		VTF3	Valve Texture Format (PS3)
 1762 >0x14	beshort		x	\b, %u
 1763 >0x16	beshort		x	\b x %u
 1764 >0x10	belong&0x2000	0	\b, DXT1
 1765 >0x10	belong&0x2000	0x2000	\b, DXT5
 1766 
 1767 # Type: ASTC texture.
 1768 # From: David Korth <gerbilsoft@gerbilsoft.com>
 1769 # References:
 1770 # - https://stackoverflow.com/questions/22600678/determine-internal-format-of-given-astc-compressed-image-through-its-header
 1771 # - https://stackoverflow.com/a/22682244
 1772 0	lelong	0x5ca1ab13			ASTC
 1773 >4	byte	x				%u
 1774 >5	byte	x				\bx%u
 1775 >6	byte	>1				\bx%u
 1776 # X, Y, and Z dimensions are stored as 24-bit LE.
 1777 # Pretend it's 32-bit and mask off the high byte.
 1778 >7	lelong&0x00FFFFFF	x		texture, %u
 1779 >10	lelong&0x00FFFFFF	x		x %u
 1780 >13	lelong&0x00FFFFFF	>1		x %u
 1781 
 1782 # Zebra Metafile graphic
 1783 # http://www.fileformat.info/format/zbr/egff.htm
 1784 0	beshort	0x9a02	Zebra Metafile graphic
 1785 >2	leshort 1	(version 1.x)
 1786 >2	leshort	2	(version 1.1x or 1.2x)
 1787 >2	leshort	3	(version 1.49)
 1788 >2	leshort	4	(version 1.50)
 1789 >4	string	x	(comment = %s)
 1790 
 1791 # Microsoft Paint graphic
 1792 # http://www.fileformat.info/format/mspaint/egff.htm
 1793 0	string	DanM 	icrosoft Paint image data (version 1.x)
 1794 >4	leshort	x	(%d
 1795 >>6	leshort	x	x %d)
 1796 0	string	LinS 	Microsoft Paint image data (version 2.0)
 1797 >4	leshort	x	(%d
 1798 >>6	leshort	x	x %d)
 1799 
 1800 # reMarkable tablet internal file format (https://www.remarkable.com/)
 1801 # https://github.com/ax3l/lines-are-beautiful
 1802 # https://plasma.ninja/blog/devices/remarkable/binary/format/2017/12/26/\
 1803 #	reMarkable-lines-file-format.html#what-to-do-next
 1804 # from Axel Huebl
 1805 0		string	reMarkable
 1806 >11		string	lines
 1807 >>17		string	with
 1808 >>>22		string	selections
 1809 >>>>33		string	and
 1810 >>>>>37		string	layers
 1811 >>>>>>43	lelong	x	reMarkable tablet notebook lines, 1404 x 1872, %x page(s)