
#------------------------------------------------------------------------------
# images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
#
# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
# additions by janl@ifi.uio.no as well as others. Jan also suggested
# merging several one- and two-line files into here.
#
# XXX - byte order for GIF and TIFF fields?
# [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
#

# [GRR:  what the hell is this doing in here?]
0	string		xbtoa		btoa'd file

# PBMPLUS
0	string		P1		PBM file
0	string		P2		PGM file
0	string		P3		PPM file
0	string		P4		PBM "rawbits" file
0	string		P5		PGM "rawbits" file
0	string		P6		PPM "rawbits" file

# NIFF (Navy Interchange File Format, a modification of TIFF)
# [GRR:  this *must* go before TIFF]
0	string		IIN1		NIFF raster data

# TIFF and friends
0	string		MM		TIFF file, big-endian
>2	short		>0		version %d
0	string		II		TIFF file, little-endian
>2	short		>0		version %d

# possible GIF replacements; none yet released!
# (Greg Roelofs, newt@uchicago.edu)
#
# GRR 950115:  this was mine ("Zip GIF"):
0	string		GIF94z		ZIF image (GIF+deflate alpha)
#
# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
0	string		FGF95a		FGF image (GIF+deflate beta)
#
# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
# (best; not yet implemented):
0	string		PBF		PBF image (deflate compression)

# GIF
0	string		GIF		GIF image
>3	string		87a		- version %s
>3	string		89a		- version %s
>6	leshort		>0		%hd x
>8	leshort		>0		%hd,
>10	byte		&0x40		interlaced,
>10	byte&0x07	=0x00		2 colors
>10	byte&0x07	=0x01		4 colors
>10	byte&0x07	=0x02		8 colors
>10	byte&0x07	=0x03		16 colors
>10	byte&0x07	=0x04		32 colors
>10	byte&0x07	=0x05		64 colors
>10	byte&0x07	=0x06		128 colors
>10	byte&0x07	=0x07		256 colors

# Miscellany
0	long		1123028772	Artisan image file
>4	long		1	rectangular 24-bit image
>4	long		2	rectangular 8-bit image with colormap
>4	long		3	rectangular 32-bit image (24-bit with matte)
0	string		\361\0\100\273	CMU window manager bitmap
0	string		#FIG		FIG graphics savefile text
>6	string		2.1		Version 2.1
>6	string		2.0		Version 2.0
0	string		GKSM		GKS Metafile
8	string		ILBM		IFF ILBM file
0	string		ARF_BEGARF	PHIGS clear text archive

# From: <u31b3hs@pool.informatik.rwth-aachen.de> (Michael Haardt)
0	string          yz      MGR bitmap, modern format, 8 bit aligned
0	string          zz      MGR bitmap, old format, 1 bit deep, 16 bit aligned
0	string          xz      MGR bitmap, old format, 1 bit deep, 32 bit aligned
0	string          yx      MGR bitmap, modern format, squeezed

0	string		%bitmap		FBM pixmap
>30	long		0x31		(mono)
>30	long		0x33		(color)

4	string		Research,	Digifax-G3-File
>29	byte		1		, fine resolution
>29	byte		0		, normal resolution

# JPEG images
0	beshort		0xffd8		JPEG image
>6	string		JFIF		(JFIF standard)
# from cameron@cs.unsw.oz.au (Cameron Simpson):
0	string		hsi1		HSI1 image (wrapper for JPEG?)

# PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
0	string		BM		bitmap
>14	byte		12		(OS/2 1.x format)
>14	byte		64		(OS/2 2.x format)
>14	byte		40		(Windows 3.x format)
0	string		IC		icon
0	string		PI		pointer
0	string		CI		color icon
0	string		CP		color pointer
0	string		BA		bitmap array

# Utah Raster Toolkit RLE images (two versions)
#
# From <janl@ifi.uio.no>
# I made this with the help of the man page for rle(5). Ihey missing
# from the magic numbers I have:
0	beshort		0xcc52		Utah Raster Toolkit RLE
>2	beshort		>0		lower left corner: %d
>4	beshort		>0		lower right corner: %d
>6	beshort		>0		%d x
>8	beshort		>0		%d
>10	byte&0x1	=0x1		CLEARFIRST
>10	byte&0x2	=0x2		NO_BACKGROUND
>10	byte&0x4	=0x4		ALPHA
>10	byte&0x8	=0x8		COMMENT
>11	byte		>0		%d colour channels
>12	byte		>0		%d bits per pixel
>13	byte		>0		%d colour map channels
#
# RLE images (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
# Here's a magic file entry for rle images. 24-bit images tend to produce
# foo.rle size 42x42, 3 comps each 8 bits
# (for arbitary, prossibly different values of 42).
# freely redistribuable under the GPL
# [GRR:  which endianness?  big?]
0	short		0xcc55		rle image data
>6	short		>0		%d x
>8	short		>0		%d,
>2	short		>0		x offset by %d,
>4	short		>0		y offset by %d,
>11	byte		=0		colour map
>11	byte		>1		%d comps each
>12	byte		=1		1 bit
>12	byte		>1		%d bits

# FBM images, culled from xli source (d. p. simpleton, m91dps@ecs.ox.ac.uk)
0       string          %bitmap         fbm image data

# image file format (Robert Potter, potter@cs.rochester.edu)
0	string		Imagefile\ version-	iff image data
# this adds the whole header (inc. version number), informative but longish
>10	string		>\0		%s
