1f72f8299SJan Lentfer 2327e51cbSPeter Avalos#------------------------------------------------------------------------------ 3*3b9cdfa3SAntonio Huete Jimenez# $File: images,v 1.227 2022/09/11 20:58:52 christos Exp $ 479343712SPeter Avalos# images: file(1) magic for image formats (see also "iff", and "c-lang" for 579343712SPeter Avalos# XPM bitmaps) 6327e51cbSPeter Avalos# 7327e51cbSPeter Avalos# originally from jef@helios.ee.lbl.gov (Jef Poskanzer), 8327e51cbSPeter Avalos# additions by janl@ifi.uio.no as well as others. Jan also suggested 9327e51cbSPeter Avalos# merging several one- and two-line files into here. 10327e51cbSPeter Avalos# 11327e51cbSPeter Avalos# little magic: PCX (first byte is 0x0a) 12327e51cbSPeter Avalos 13327e51cbSPeter Avalos# Targa - matches `povray', `ppmtotga' and `xv' outputs 14327e51cbSPeter Avalos# by Philippe De Muyter <phdm@macqel.be> 15c30bd091SSascha Wildner# URL: http://justsolve.archiveteam.org/wiki/TGA 16c30bd091SSascha Wildner# Reference: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf 17c30bd091SSascha Wildner# Update: Joerg Jenderek 18327e51cbSPeter Avalos# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11 19c30bd091SSascha Wildner# ,32 or 33 (both not observed) 20327e51cbSPeter Avalos# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise 21c30bd091SSascha Wildner# or theoretically 2-128 reserved for use by Truevision or 128-255 may be used for developer applications 22327e51cbSPeter Avalos# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs 23327e51cbSPeter Avalos# `xv' recognizes only a subset of the following (RGB with pixelsize = 24) 24327e51cbSPeter Avalos# `tgatoppm' recognizes a superset (Index may be anything) 25c30bd091SSascha Wildner# 26c30bd091SSascha Wildner# test of Color Map Type 0~no 1~color map 27c30bd091SSascha Wildner# and Image Type 1 2 3 9 10 11 32 33 28c30bd091SSascha Wildner# and Color Map Entry Size 0 15 16 24 32 29c30bd091SSascha Wildner0 ubequad&0x00FeC400000000C0 0 30c990e5baSDaniel Fojt# Conflict with MPEG sequences. 31c990e5baSDaniel Fojt!:strength -40 326fca56fbSSascha Wildner# Prevent conflicts with CRI ADX. 33970935fdSSascha Wildner#>(2.S-2) belong !0x28632943 34970935fdSSascha Wildner# above line does not work for rgb32_top_left_rle.tga 35970935fdSSascha Wildner# skip some MPEG sequence *.vob and some CRI ADX audio with improbable interleave bits 36970935fdSSascha Wildner>17 ubyte&0xC0 !0xC0 376fca56fbSSascha Wildner# skip more garbage like *.iso by looking for positive image type 386fca56fbSSascha Wildner>>2 ubyte >0 396fca56fbSSascha Wildner# skip some compiled terminfo like xterm+tmux by looking for image type less equal 33 406fca56fbSSascha Wildner>>>2 ubyte <34 41970935fdSSascha Wildner# skip some MPEG sequence *.vob HV001T01.EVO winnicki.mpg with unacceptable alpha channel depth 11 42970935fdSSascha Wildner>>>>17 ubyte&0x0F !11 436fca56fbSSascha Wildner# skip arches.3200 , Finder.Root , Slp.1 by looking for low pixel depth 1 8 15 16 24 32 44970935fdSSascha Wildner>>>>>16 ubyte 1 45970935fdSSascha Wildner>>>>>>0 use tga-image 46970935fdSSascha Wildner>>>>>16 ubyte 8 47970935fdSSascha Wildner>>>>>>0 use tga-image 48970935fdSSascha Wildner>>>>>16 ubyte 15 49970935fdSSascha Wildner>>>>>>0 use tga-image 50970935fdSSascha Wildner>>>>>16 ubyte 16 51970935fdSSascha Wildner>>>>>>0 use tga-image 52970935fdSSascha Wildner>>>>>16 ubyte 24 53970935fdSSascha Wildner>>>>>>0 use tga-image 54970935fdSSascha Wildner>>>>>16 ubyte 32 55970935fdSSascha Wildner>>>>>>0 use tga-image 56c30bd091SSascha Wildner# display tga bitmap image information 57c30bd091SSascha Wildner0 name tga-image 58c30bd091SSascha Wildner>2 ubyte <34 Targa image data 59c30bd091SSascha Wildner!:mime image/x-tga 60c30bd091SSascha Wildner!:apple ????TPIC 61c30bd091SSascha Wildner# normal extension .tga but some Truevision products used others: 62c30bd091SSascha Wildner# tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that) 63c30bd091SSascha Wildner!:ext tga/tpic/icb/vda/vst 64c30bd091SSascha Wildner# image type 1 2 3 9 10 11 32 33 65c30bd091SSascha Wildner>2 ubyte&0xF7 1 - Map 66c30bd091SSascha Wildner>2 ubyte&0xF7 2 - RGB 67c30bd091SSascha Wildner# alpha channel 68c30bd091SSascha Wildner>>17 ubyte&0x0F >0 \bA 69c30bd091SSascha Wildner>2 ubyte&0xF7 3 - Mono 70c30bd091SSascha Wildner# type not found, but by http://www.fileformat.info/format/tga/corion.htm 71c30bd091SSascha Wildner# Compressed color-mapped data, using Huffman, Delta, and runlength encoding 72c30bd091SSascha Wildner>2 ubyte 32 - Color 73c30bd091SSascha Wildner# Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process 74c30bd091SSascha Wildner>2 ubyte 33 - Color 75c30bd091SSascha Wildner# Color Map Type 0~no 1~color map 76c30bd091SSascha Wildner>1 ubyte 1 ( 77c30bd091SSascha Wildner# first color map entry, 0 normal 78c30bd091SSascha Wildner>>3 uleshort >0 \b%d- 79c30bd091SSascha Wildner# color map length 0 2 1dh 3bh d9h 100h 80c30bd091SSascha Wildner>>5 uleshort x \b%d) 81c30bd091SSascha Wildner# 8~run length encoding bit 82c30bd091SSascha Wildner>2 ubyte&0x08 8 - RLE 83c30bd091SSascha Wildner# gimp can create big pictures! 84c30bd091SSascha Wildner>12 uleshort >0 %d x 85c30bd091SSascha Wildner>12 uleshort =0 65536 x 86c30bd091SSascha Wildner# image height. 0 interpreted as 65536 87c30bd091SSascha Wildner>14 uleshort >0 %d 88c30bd091SSascha Wildner>14 uleshort =0 65536 896fca56fbSSascha Wildner# Image Pixel depth 1 8 15 16 24 32 90c30bd091SSascha Wildner>16 ubyte x x %d 91c30bd091SSascha Wildner# X origin of image. 0 normal 92c30bd091SSascha Wildner>8 uleshort >0 +%d 93c30bd091SSascha Wildner# Y origin of image. 0 normal; positive for top 94c30bd091SSascha Wildner>10 uleshort >0 +%d 95c30bd091SSascha Wildner# Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction 96970935fdSSascha Wildner# alpha depth like: 1 8 97c30bd091SSascha Wildner>17 ubyte&0x0F >0 - %d-bit alpha 98c30bd091SSascha Wildner# bits 5-4 give direction. normal bottom left 99c30bd091SSascha Wildner>17 ubyte &0x20 - top 100c30bd091SSascha Wildner#>17 ubyte ^0x20 - bottom 101c30bd091SSascha Wildner>17 ubyte &0x10 - right 102c30bd091SSascha Wildner#>17 ubyte ^0x10 - left 103c30bd091SSascha Wildner# some info say other bits 6-7 should be zero 104c30bd091SSascha Wildner# but data storage interleave by http://www.fileformat.info/format/tga/corion.htm 105c30bd091SSascha Wildner# 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved 106c30bd091SSascha Wildner#>17 ubyte&0xC0 0x00 - no interleave 107c30bd091SSascha Wildner>17 ubyte&0xC0 0x40 - interleave 108c30bd091SSascha Wildner>17 ubyte&0xC0 0x80 - four way interleave 109c30bd091SSascha Wildner>17 ubyte&0xC0 0xC0 - reserved 110c30bd091SSascha Wildner# positive length implies identification field 111c30bd091SSascha Wildner>0 ubyte >0 112c30bd091SSascha Wildner>>18 string x "%s" 113c30bd091SSascha Wildner# last 18 bytes of newer tga file footer signature 114c30bd091SSascha Wildner>18 search/4261301/s TRUEVISION-XFILE.\0 115c30bd091SSascha Wildner# extension area offset if not 0 116c30bd091SSascha Wildner>>&-8 ulelong >0 117c30bd091SSascha Wildner# length of the extension area. normal 495 for version 2.0 118c30bd091SSascha Wildner>>>(&-4.l) uleshort 0x01EF 119c30bd091SSascha Wildner# AuthorName[41] 120c30bd091SSascha Wildner>>>>&0 string >\0 - author "%-.40s" 121c30bd091SSascha Wildner# Comment[324]=4 * 80 null terminated 122c30bd091SSascha Wildner>>>>&41 string >\0 - comment "%-.80s" 123c30bd091SSascha Wildner# date 124c30bd091SSascha Wildner>>>>&365 ubequad&0xffffFFFFffff0000 !0 125c30bd091SSascha Wildner# Day 126c30bd091SSascha Wildner>>>>>&-6 uleshort x %d 127c30bd091SSascha Wildner# Month 128c30bd091SSascha Wildner>>>>>&-8 uleshort x \b-%d 129c30bd091SSascha Wildner# Year 130c30bd091SSascha Wildner>>>>>&-4 uleshort x \b-%d 131c30bd091SSascha Wildner# time 132c30bd091SSascha Wildner>>>>&371 ubequad&0xffffFFFFffff0000 !0 133c30bd091SSascha Wildner# hour 134c30bd091SSascha Wildner>>>>>&-8 uleshort x %d 135c30bd091SSascha Wildner# minutes 136c30bd091SSascha Wildner>>>>>&-6 uleshort x \b:%.2d 137c30bd091SSascha Wildner# second 138c30bd091SSascha Wildner>>>>>&-4 uleshort x \b:%.2d 139c30bd091SSascha Wildner# JobName[41] 140c30bd091SSascha Wildner>>>>&377 string >\0 - job "%-.40s" 141c30bd091SSascha Wildner# JobHour Jobminute Jobsecond 142c30bd091SSascha Wildner>>>>&418 ubequad&0xffffFFFFffff0000 !0 143c30bd091SSascha Wildner>>>>>&-8 uleshort x %d 144c30bd091SSascha Wildner>>>>>&-6 uleshort x \b:%.2d 145c30bd091SSascha Wildner>>>>>&-4 uleshort x \b:%.2d 146c30bd091SSascha Wildner# SoftwareId[41] 147c30bd091SSascha Wildner>>>>&424 string >\0 - %-.40s 148c30bd091SSascha Wildner# SoftwareVersionNumber 149c30bd091SSascha Wildner>>>>&424 ubyte >0 150c30bd091SSascha Wildner>>>>>&40 uleshort/100 x %d 151c30bd091SSascha Wildner>>>>>&40 uleshort%100 x \b.%d 152c30bd091SSascha Wildner# VersionLetter 153c30bd091SSascha Wildner>>>>>&42 ubyte >0x20 \b%c 154c30bd091SSascha Wildner# KeyColor 155614728caSSascha Wildner>>>>&468 ulelong >0 - keycolor %#8.8x 156c30bd091SSascha Wildner# Denominator of Pixel ratio. 0~no pixel aspect 157c30bd091SSascha Wildner>>>>&474 uleshort >0 158c30bd091SSascha Wildner# Numerator 159c30bd091SSascha Wildner>>>>>&-4 uleshort >0 - aspect %d 160c30bd091SSascha Wildner>>>>>&-2 uleshort x \b/%d 161c30bd091SSascha Wildner# Denominator of Gamma ratio. 0~no Gamma value 162c30bd091SSascha Wildner>>>>&478 uleshort >0 163c30bd091SSascha Wildner# Numerator 164c30bd091SSascha Wildner>>>>>&-4 uleshort >0 - gamma %d 165c30bd091SSascha Wildner>>>>>&-2 uleshort x \b/%d 166c30bd091SSascha Wildner# ColorOffset 167614728caSSascha Wildner#>>>>&480 ulelong x - col offset %#8.8x 168c30bd091SSascha Wildner# StampOffset 169614728caSSascha Wildner#>>>>&484 ulelong x - stamp offset %#8.8x 170c30bd091SSascha Wildner# ScanOffset 171614728caSSascha Wildner#>>>>&488 ulelong x - scan offset %#8.8x 172c30bd091SSascha Wildner# AttributesType 173614728caSSascha Wildner#>>>>&492 ubyte x - Attributes %#x 174c30bd091SSascha Wildner## EndOfTGA 175327e51cbSPeter Avalos 176327e51cbSPeter Avalos# PBMPLUS images 177970935fdSSascha Wildner# URL: https://en.wikipedia.org/wiki/Netpbm 178327e51cbSPeter Avalos# The next byte following the magic is always whitespace. 179970935fdSSascha Wildner# adding 65 to strength so that Netpbm images comes before "x86 boot sector" or 180614728caSSascha Wildner# "DOS/MBR boot sector" identified by ./filesystems 181c30bd091SSascha Wildner0 name netpbm 182*3b9cdfa3SAntonio Huete Jimenez>3 regex/s =[0-9]{1,50}[\040\t\f\r\n]+[0-9]{1,50} Netpbm image data 183c30bd091SSascha Wildner>>&0 regex =[0-9]{1,50} \b, size = %s x 184c30bd091SSascha Wildner>>>&0 regex =[0-9]{1,50} \b %s 185c30bd091SSascha Wildner 186e8af9738SPeter Avalos0 search/1 P1 187970935fdSSascha Wildner# test for whitespace after 2 byte magic 188970935fdSSascha Wildner>2 regex/2 [\040\t\f\r\n] 189970935fdSSascha Wildner# skip DROID x-fmt-164-signature-id-583.pbm with ten 0 digits 190970935fdSSascha Wildner>>3 string !000000000 191970935fdSSascha Wildner>>>0 use netpbm 192970935fdSSascha Wildner>>>0 string x \b, bitmap 193614728caSSascha Wildner!:strength + 65 19479343712SPeter Avalos!:mime image/x-portable-bitmap 195970935fdSSascha Wildner!:ext pbm 196970935fdSSascha Wildner# check for character # starting a comment line 197970935fdSSascha Wildner>>>3 ubyte =0x23 198970935fdSSascha Wildner>>>>4 string x %s 199c30bd091SSascha Wildner 200e8af9738SPeter Avalos0 search/1 P2 201c30bd091SSascha Wildner>0 regex/4 P2[\040\t\f\r\n] 202c30bd091SSascha Wildner>>0 use netpbm 2036fca56fbSSascha Wildner>>0 string x \b, greymap 204614728caSSascha Wildner!:strength + 65 205970935fdSSascha Wildner# american spelling gray 206970935fdSSascha Wildner!:mime image/x-portable-graymap 207970935fdSSascha Wildner!:ext pgm 208c30bd091SSascha Wildner 209e8af9738SPeter Avalos0 search/1 P3 210c30bd091SSascha Wildner>0 regex/4 P3[\040\t\f\r\n] 211c30bd091SSascha Wildner>>0 use netpbm 2126fca56fbSSascha Wildner>>0 string x \b, pixmap 213614728caSSascha Wildner!:strength + 65 21479343712SPeter Avalos!:mime image/x-portable-pixmap 215970935fdSSascha Wildner!:ext ppm 216c30bd091SSascha Wildner 217e8af9738SPeter Avalos0 string P4 218c30bd091SSascha Wildner>0 regex/4 P4[\040\t\f\r\n] 219c30bd091SSascha Wildner>>0 use netpbm 2206fca56fbSSascha Wildner>>0 string x \b, rawbits, bitmap 221614728caSSascha Wildner!:strength + 65 22279343712SPeter Avalos!:mime image/x-portable-bitmap 223970935fdSSascha Wildner!:ext pbm 224c30bd091SSascha Wildner 225e8af9738SPeter Avalos0 string P5 226c30bd091SSascha Wildner>0 regex/4 P5[\040\t\f\r\n] 227c30bd091SSascha Wildner>>0 use netpbm 2286fca56fbSSascha Wildner>>0 string x \b, rawbits, greymap 229614728caSSascha Wildner!:strength + 65 23079343712SPeter Avalos!:mime image/x-portable-greymap 231970935fdSSascha Wildner!:ext pgm 232c30bd091SSascha Wildner 233e8af9738SPeter Avalos0 string P6 234c30bd091SSascha Wildner>0 regex/4 P6[\040\t\f\r\n] 235c30bd091SSascha Wildner>>0 use netpbm 2366fca56fbSSascha Wildner>>0 string x \b, rawbits, pixmap 237614728caSSascha Wildner!:strength + 65 23879343712SPeter Avalos!:mime image/x-portable-pixmap 239970935fdSSascha Wildner!:ext ppm/pnm 240c30bd091SSascha Wildner 241970935fdSSascha Wildner# URL: https://en.wikipedia.org/wiki/Netpbm#PAM_graphics_format 242970935fdSSascha Wildner# Reference: http://fileformats.archiveteam.org/wiki/Portable_Arbitrary_Map 243970935fdSSascha Wildner# Update: Joerg Jenderek 244970935fdSSascha Wildner0 string P7 245970935fdSSascha Wildner# skip DROID fmt-405-signature-id-589.pam by looking for character like New Line 246970935fdSSascha Wildner>2 ubyte !0xAB 247970935fdSSascha Wildner#>2 ubyte =0x0A 248970935fdSSascha Wildner>>3 search/256/b WIDTH Netpbm PAM image file, size = 249970935fdSSascha Wildner!:mime image/x-portable-arbitrarymap 250970935fdSSascha Wildner!:ext pam 251614728caSSascha Wildner!:strength + 65 252970935fdSSascha Wildner>>>&1 string x %s 253970935fdSSascha Wildner>>>3 search/256/b HEIGHT x 254970935fdSSascha Wildner>>>>&1 string x %s 255970935fdSSascha Wildner# at offset 2 a New Line character (0xA) should appear 256614728caSSascha Wildner>>>2 ubyte !0x0A \b, %#x at offset 2 instead new line 257327e51cbSPeter Avalos 258327e51cbSPeter Avalos# From: bryanh@giraffe-data.com (Bryan Henderson) 259327e51cbSPeter Avalos0 string \117\072 Solitaire Image Recorder format 260327e51cbSPeter Avalos>4 string \013 MGI Type 11 261327e51cbSPeter Avalos>4 string \021 MGI Type 17 262327e51cbSPeter Avalos0 string .MDA MicroDesign data 263*3b9cdfa3SAntonio Huete Jimenez>21 ubyte 48 version 2 264*3b9cdfa3SAntonio Huete Jimenez>21 ubyte 51 version 3 265327e51cbSPeter Avalos0 string .MDP MicroDesign page data 266*3b9cdfa3SAntonio Huete Jimenez>21 ubyte 48 version 2 267*3b9cdfa3SAntonio Huete Jimenez>21 ubyte 51 version 3 268327e51cbSPeter Avalos 269327e51cbSPeter Avalos# NIFF (Navy Interchange File Format, a modification of TIFF) images 27079343712SPeter Avalos# [GRR: this *must* go before TIFF] 271327e51cbSPeter Avalos0 string IIN1 NIFF image data 27279343712SPeter Avalos!:mime image/x-niff 273327e51cbSPeter Avalos 274e4d4ce0cSPeter Avalos# Canon RAW version 1 (CRW) files are a type of Canon Image File Format 275e4d4ce0cSPeter Avalos# (CIFF) file. These are apparently all little-endian. 276e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com> 2776fca56fbSSascha Wildner# URL: https://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html 278e4d4ce0cSPeter Avalos0 string II\x1a\0\0\0HEAPCCDR Canon CIFF raw image data 279e4d4ce0cSPeter Avalos!:mime image/x-canon-crw 280*3b9cdfa3SAntonio Huete Jimenez>16 uleshort x \b, version %d. 281*3b9cdfa3SAntonio Huete Jimenez>14 uleshort x \b%d 282e4d4ce0cSPeter Avalos 283e4d4ce0cSPeter Avalos# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic 284e4d4ce0cSPeter Avalos# number. Put this above the TIFF test to make sure we detect them. 285e4d4ce0cSPeter Avalos# These are apparently all little-endian. 286e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com> 2876fca56fbSSascha Wildner# URL: https://libopenraw.freedesktop.org/wiki/Canon_CR2 288e4d4ce0cSPeter Avalos0 string II\x2a\0\x10\0\0\0CR Canon CR2 raw image data 289e4d4ce0cSPeter Avalos!:mime image/x-canon-cr2 2906fca56fbSSascha Wildner!:strength +80 291*3b9cdfa3SAntonio Huete Jimenez>10 ubyte x \b, version %d. 292*3b9cdfa3SAntonio Huete Jimenez>11 ubyte x \b%d 293e4d4ce0cSPeter Avalos 294970935fdSSascha Wildner# Fujifilm RAF RAW image files with embedded JPEG data and compressed 295970935fdSSascha Wildner# or uncompressed CFA RAW data. Byte order: Big Endian. 296970935fdSSascha Wildner# URL: https://libopenraw.freedesktop.org/formats/raf/ 297614728caSSascha Wildner# Useful info from http://fileformats.archiveteam.org/wiki/Fujifilm_RAF. 298614728caSSascha Wildner# File extension: RAF 299614728caSSascha Wildner# Works for both the FinePix S2 Pro and the X-T3. Anybody have some more Fuji 300614728caSSascha Wildner# raw samples available? 301614728caSSascha Wildner# -- David Dyer-Bennet <dd-b@dd-b.net> 9-Sep-2021 302970935fdSSascha Wildner0 string FUJIFILMCCD-RAW Fujifilm RAF raw image data 303970935fdSSascha Wildner!:mime image/x-fuji-raf 304614728caSSascha Wildner!:ext raf 305614728caSSascha Wildner>0x10 string x \b, format version %4.4s 306614728caSSascha Wildner>0x1C string x \b, camera %s 307970935fdSSascha Wildner 308327e51cbSPeter Avalos# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com) 309327e51cbSPeter Avalos# The second word of TIFF files is the TIFF version number, 42, which has 310327e51cbSPeter Avalos# never changed. The TIFF specification recommends testing for it. 311327e51cbSPeter Avalos0 string MM\x00\x2a TIFF image data, big-endian 3126fca56fbSSascha Wildner!:strength +70 31379343712SPeter Avalos!:mime image/tiff 314970935fdSSascha Wildner!:ext tif,tiff 31582c5fa3eSPeter Avalos>(4.L) use \^tiff_ifd 316327e51cbSPeter Avalos0 string II\x2a\x00 TIFF image data, little-endian 31779343712SPeter Avalos!:mime image/tiff 3186fca56fbSSascha Wildner!:strength +70 319970935fdSSascha Wildner!:ext tif,tiff 32082c5fa3eSPeter Avalos>(4.l) use tiff_ifd 32182c5fa3eSPeter Avalos 32282c5fa3eSPeter Avalos0 name tiff_ifd 323*3b9cdfa3SAntonio Huete Jimenez>0 uleshort x \b, direntries=%d 32482c5fa3eSPeter Avalos>2 use tiff_entry 32582c5fa3eSPeter Avalos 32682c5fa3eSPeter Avalos0 name tiff_entry 32782c5fa3eSPeter Avalos# NewSubFileType 328*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0xfe 32982c5fa3eSPeter Avalos>>12 use tiff_entry 330*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x100 331*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong 1 33282c5fa3eSPeter Avalos>>>12 use tiff_entry 333*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort x \b, width=%d 334*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x101 335*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong 1 336*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort x \b, height=%d 33782c5fa3eSPeter Avalos>>>12 use tiff_entry 338*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x102 339*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort x \b, bps=%d 34082c5fa3eSPeter Avalos>>12 use tiff_entry 341*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x103 342*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong 1 \b, compression= 343*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 1 \bnone 344*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 2 \bhuffman 345*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 3 \bbi-level group 3 346*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 4 \bbi-level group 4 347*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 5 \bLZW 348*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 6 \bJPEG (old) 349*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 7 \bJPEG 350*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 8 \bdeflate 351*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 9 \bJBIG, ITU-T T.85 352*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0xa \bJBIG, ITU-T T.43 353*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x7ffe \bNeXT RLE 2-bit 354*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8005 \bPackBits (Macintosh RLE) 355*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8029 \bThunderscan RLE 356*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x807f \bRasterPadding (CT or MP) 357*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8080 \bRLE (Line Work) 358*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8081 \bRLE (High-Res Cont-Tone) 359*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8082 \bRLE (Binary Line Work) 360*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x80b2 \bDeflate (PKZIP) 361*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x80b3 \bKodak DCS 362*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8765 \bJBIG 363*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8798 \bJPEG2000 364*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort 0x8799 \bNikon NEF Compressed 36582c5fa3eSPeter Avalos>>>8 default x 366*3b9cdfa3SAntonio Huete Jimenez>>>>8 uleshort x \b(unknown %#x) 36782c5fa3eSPeter Avalos>>>12 use tiff_entry 368*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x106 \b, PhotometricInterpretation= 369c30bd091SSascha Wildner>>8 clear x 370*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 0 \bWhiteIsZero 371*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 1 \bBlackIsZero 372*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 2 \bRGB 373*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 3 \bRGB Palette 374*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 4 \bTransparency Mask 375*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 5 \bCMYK 376*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 6 \bYCbCr 377*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 8 \bCIELab 378c30bd091SSascha Wildner>>8 default x 379*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort x \b(unknown=%#x) 38082c5fa3eSPeter Avalos>>12 use tiff_entry 38182c5fa3eSPeter Avalos# FillOrder 382*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x10a 383*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong 1 38482c5fa3eSPeter Avalos>>>12 use tiff_entry 38582c5fa3eSPeter Avalos# DocumentName 386*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x10d 38782c5fa3eSPeter Avalos>>(8.l) string x \b, name=%s 38882c5fa3eSPeter Avalos>>>12 use tiff_entry 38982c5fa3eSPeter Avalos# ImageDescription 390*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x10e 39182c5fa3eSPeter Avalos>>(8.l) string x \b, description=%s 39282c5fa3eSPeter Avalos>>>12 use tiff_entry 39382c5fa3eSPeter Avalos# Make 394*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x10f 39582c5fa3eSPeter Avalos>>(8.l) string x \b, manufacturer=%s 39682c5fa3eSPeter Avalos>>>12 use tiff_entry 39782c5fa3eSPeter Avalos# Model 398*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x110 39982c5fa3eSPeter Avalos>>(8.l) string x \b, model=%s 40082c5fa3eSPeter Avalos>>>12 use tiff_entry 40182c5fa3eSPeter Avalos# StripOffsets 402*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x111 40382c5fa3eSPeter Avalos>>12 use tiff_entry 40482c5fa3eSPeter Avalos# Orientation 405*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x112 \b, orientation= 406*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 1 \bupper-left 407*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 3 \blower-right 408*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 6 \bupper-right 409*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 8 \blower-left 410*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort 9 \bundefined 41182c5fa3eSPeter Avalos>>8 default x 412*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort x \b[*%d*] 41382c5fa3eSPeter Avalos>>12 use tiff_entry 41482c5fa3eSPeter Avalos# XResolution 415*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x11a 416*3b9cdfa3SAntonio Huete Jimenez>>8 ulelong x \b, xresolution=%d 41782c5fa3eSPeter Avalos>>12 use tiff_entry 41882c5fa3eSPeter Avalos# YResolution 419*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x11b 420*3b9cdfa3SAntonio Huete Jimenez>>8 ulelong x \b, yresolution=%d 42182c5fa3eSPeter Avalos>>12 use tiff_entry 42282c5fa3eSPeter Avalos# ResolutionUnit 423*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x128 424*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort x \b, resolutionunit=%d 42582c5fa3eSPeter Avalos>>12 use tiff_entry 42682c5fa3eSPeter Avalos# Software 427*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x131 42882c5fa3eSPeter Avalos>>(8.l) string x \b, software=%s 42982c5fa3eSPeter Avalos>>12 use tiff_entry 43082c5fa3eSPeter Avalos# Datetime 431*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x132 43282c5fa3eSPeter Avalos>>(8.l) string x \b, datetime=%s 43382c5fa3eSPeter Avalos>>12 use tiff_entry 43482c5fa3eSPeter Avalos# HostComputer 435*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x13c 43682c5fa3eSPeter Avalos>>(8.l) string x \b, hostcomputer=%s 43782c5fa3eSPeter Avalos>>12 use tiff_entry 43882c5fa3eSPeter Avalos# WhitePoint 439*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x13e 44082c5fa3eSPeter Avalos>>12 use tiff_entry 44182c5fa3eSPeter Avalos# PrimaryChromaticities 442*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x13f 44382c5fa3eSPeter Avalos>>12 use tiff_entry 44482c5fa3eSPeter Avalos# YCbCrCoefficients 445*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x211 44682c5fa3eSPeter Avalos>>12 use tiff_entry 44782c5fa3eSPeter Avalos# YCbCrPositioning 448*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x213 44982c5fa3eSPeter Avalos>>12 use tiff_entry 45082c5fa3eSPeter Avalos# ReferenceBlackWhite 451*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x214 45282c5fa3eSPeter Avalos>>12 use tiff_entry 45382c5fa3eSPeter Avalos# Copyright 454*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x8298 45582c5fa3eSPeter Avalos>>(8.l) string x \b, copyright=%s 45682c5fa3eSPeter Avalos>>12 use tiff_entry 45782c5fa3eSPeter Avalos# ExifOffset 458*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x8769 45982c5fa3eSPeter Avalos>>12 use tiff_entry 46082c5fa3eSPeter Avalos# GPS IFD 461*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0x8825 \b, GPS-Data 46282c5fa3eSPeter Avalos>>12 use tiff_entry 46382c5fa3eSPeter Avalos 464*3b9cdfa3SAntonio Huete Jimenez#>0 uleshort x \b, unknown=%#x 46582c5fa3eSPeter Avalos#>>12 use tiff_entry 466327e51cbSPeter Avalos 4679f86ab30SPeter Avalos0 string MM\x00\x2b Big TIFF image data, big-endian 4689f86ab30SPeter Avalos!:mime image/tiff 4699f86ab30SPeter Avalos0 string II\x2b\x00 Big TIFF image data, little-endian 4709f86ab30SPeter Avalos!:mime image/tiff 4719f86ab30SPeter Avalos 472327e51cbSPeter Avalos# PNG [Portable Network Graphics, or "PNG's Not GIF"] images 473327e51cbSPeter Avalos# (Greg Roelofs, newt@uchicago.edu) 474327e51cbSPeter Avalos# (Albert Cahalan, acahalan@cs.uml.edu) 475327e51cbSPeter Avalos# 476c30bd091SSascha Wildner# 137 P N G \r \n ^Z \n [4-byte length] I H D R [HEAD data] [HEAD crc] ... 477327e51cbSPeter Avalos# 478c30bd091SSascha Wildner 479c30bd091SSascha Wildner# IHDR parser 480c30bd091SSascha Wildner0 name png-ihdr 481*3b9cdfa3SAntonio Huete Jimenez>0 ubelong x \b, %d x 482*3b9cdfa3SAntonio Huete Jimenez>4 ubelong x %d, 483*3b9cdfa3SAntonio Huete Jimenez>8 ubyte x %d-bit 484*3b9cdfa3SAntonio Huete Jimenez>9 ubyte 0 grayscale, 485*3b9cdfa3SAntonio Huete Jimenez>9 ubyte 2 \b/color RGB, 486*3b9cdfa3SAntonio Huete Jimenez>9 ubyte 3 colormap, 487*3b9cdfa3SAntonio Huete Jimenez>9 ubyte 4 gray+alpha, 488*3b9cdfa3SAntonio Huete Jimenez>9 ubyte 6 \b/color RGBA, 489*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte 0 deflate/32K, 490*3b9cdfa3SAntonio Huete Jimenez>12 ubyte 0 non-interlaced 491*3b9cdfa3SAntonio Huete Jimenez>12 ubyte 1 interlaced 492c30bd091SSascha Wildner 493c30bd091SSascha Wildner# Standard PNG image. 494c30bd091SSascha Wildner0 string \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0DIHDR PNG image data 49579343712SPeter Avalos!:mime image/png 4966fca56fbSSascha Wildner!:ext png 497c30bd091SSascha Wildner!:strength +10 498c30bd091SSascha Wildner>16 use png-ihdr 499c30bd091SSascha Wildner 500c30bd091SSascha Wildner# Apple CgBI PNG image. 501c30bd091SSascha Wildner0 string \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x04CgBI 502c30bd091SSascha Wildner>24 string \x00\x00\x00\x0DIHDR PNG image data (CgBI) 503c30bd091SSascha Wildner!:mime image/png 5046fca56fbSSascha Wildner!:ext png 505c30bd091SSascha Wildner!:strength +10 506c30bd091SSascha Wildner>>32 use png-ihdr 50779343712SPeter Avalos 50879343712SPeter Avalos# possible GIF replacements; none yet released! 50979343712SPeter Avalos# (Greg Roelofs, newt@uchicago.edu) 51079343712SPeter Avalos# 51179343712SPeter Avalos# GRR 950115: this was mine ("Zip GIF"): 51279343712SPeter Avalos0 string GIF94z ZIF image (GIF+deflate alpha) 51379343712SPeter Avalos!:mime image/x-unknown 51479343712SPeter Avalos# 51579343712SPeter Avalos# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better): 51679343712SPeter Avalos# 51779343712SPeter Avalos0 string FGF95a FGF image (GIF+deflate beta) 51879343712SPeter Avalos!:mime image/x-unknown 51979343712SPeter Avalos# 52079343712SPeter Avalos# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal 52179343712SPeter Avalos# (best; not yet implemented): 52279343712SPeter Avalos# 52379343712SPeter Avalos0 string PBF PBF image (deflate compression) 52479343712SPeter Avalos!:mime image/x-unknown 525327e51cbSPeter Avalos 526327e51cbSPeter Avalos# GIF 5276fca56fbSSascha Wildner# Strength set up to beat 0x55AA DOS/MBR signature word lookups (+65) 528327e51cbSPeter Avalos0 string GIF8 GIF image data 5296fca56fbSSascha Wildner!:strength +80 53079343712SPeter Avalos!:mime image/gif 53179343712SPeter Avalos!:apple 8BIMGIFf 532970935fdSSascha Wildner!:ext gif 533327e51cbSPeter Avalos>4 string 7a \b, version 8%s, 534327e51cbSPeter Avalos>4 string 9a \b, version 8%s, 535*3b9cdfa3SAntonio Huete Jimenez>6 uleshort >0 %d x 536*3b9cdfa3SAntonio Huete Jimenez>8 uleshort >0 %d 537*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte &0x80 color mapped, 538*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x00 2 colors 539*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x01 4 colors 540*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x02 8 colors 541*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x03 16 colors 542*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x04 32 colors 543*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x05 64 colors 544*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x06 128 colors 545*3b9cdfa3SAntonio Huete Jimenez#>10 ubyte&0x07 =0x07 256 colors 546327e51cbSPeter Avalos 547327e51cbSPeter Avalos# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster, 548327e51cbSPeter Avalos# 1 plane, no encoding. 549327e51cbSPeter Avalos0 string \361\0\100\273 CMU window manager raster image data 550*3b9cdfa3SAntonio Huete Jimenez>4 ulelong >0 %d x 551*3b9cdfa3SAntonio Huete Jimenez>8 ulelong >0 %d, 552*3b9cdfa3SAntonio Huete Jimenez>12 ulelong >0 %d-bit 553327e51cbSPeter Avalos 554327e51cbSPeter Avalos# Magick Image File Format 5556fca56fbSSascha Wildner# URL: https://imagemagick.org/script/miff.php 5566fca56fbSSascha Wildner# Reference: http://fileformats.archiveteam.org/wiki/MIFF 5576fca56fbSSascha Wildner# Update: Joerg Jenderek 5586fca56fbSSascha Wildner# http://www.nationalarchives.gov.uk/pronom/fmt/930 5596fca56fbSSascha Wildner0 search/256/bc id=imagemagick 5606fca56fbSSascha Wildner# skip bad ASCII text by following new line~0x0A or space~0x20 character 561614728caSSascha Wildner#>&0 ubyte x \b, next character %#x 5626fca56fbSSascha Wildner# called by TriD ImageMagick Machine independent File Format bitmap 5636fca56fbSSascha Wildner>&0 ubyte&0xD5 0 MIFF image data 5646fca56fbSSascha Wildner# https://reposcope.com/mimetype/image/miff 5656fca56fbSSascha Wildner#!:mime image/miff 5666fca56fbSSascha Wildner!:mime image/x-miff 5676fca56fbSSascha Wildner!:ext miff/mif 5686fca56fbSSascha Wildner# examples with standard file(1) magic 5696fca56fbSSascha Wildner#>>0 string =id=ImageMagick with standard magic 5706fca56fbSSascha Wildner# examples with unusual file(1) magic like 5716fca56fbSSascha Wildner>>0 string !id=ImageMagick starting with 5726fca56fbSSascha Wildner# start with comment (brace) like http://samples.fileformat.info/.../AQUARIUM.MIF 5736fca56fbSSascha Wildner>>>0 ubyte =0x7b comment 5746fca56fbSSascha Wildner# skip second character which is often a newline and show comment 5756fca56fbSSascha Wildner>>>>2 string x "%s" 5766fca56fbSSascha Wildner# does not start with comment, probably letters with other case like Id=ImageMagick 5776fca56fbSSascha Wildner# ImageMagick-7.0.9-2/Magick++/demo/smile_anim.miff 5786fca56fbSSascha Wildner>>>0 ubyte !0x7b 5796fca56fbSSascha Wildner>>>>0 string >\0 '%-.14s' 580c990e5baSDaniel Fojt# URL: https://imagemagick.org/ 581c990e5baSDaniel Fojt# Reference: https://imagemagick.org/script/magick-vector-graphics.php 582c990e5baSDaniel Fojt# From: Joerg Jenderek 583c990e5baSDaniel Fojt# Note: all white-spaces between commands are ignored 584c990e5baSDaniel Fojt0 string push 585c990e5baSDaniel Fojt# skip some white spaces 586c990e5baSDaniel Fojt>5 search/3 graphic-context ImageMagick Vector Graphic 587c990e5baSDaniel Fojt# TODO: look for dangerous commands like CVE-2016-3715 588c990e5baSDaniel Fojt#!:mime text/plain 589c990e5baSDaniel Fojt!:mime image/x-mvg 590c990e5baSDaniel Fojt!:ext mvg 591327e51cbSPeter Avalos 592327e51cbSPeter Avalos# Artisan 593327e51cbSPeter Avalos0 long 1123028772 Artisan image data 594327e51cbSPeter Avalos>4 long 1 \b, rectangular 24-bit 595327e51cbSPeter Avalos>4 long 2 \b, rectangular 8-bit with colormap 596327e51cbSPeter Avalos>4 long 3 \b, rectangular 32-bit (24-bit with matte) 597327e51cbSPeter Avalos 598327e51cbSPeter Avalos# FIG (Facility for Interactive Generation of figures), an object-based format 599*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/Fig 600*3b9cdfa3SAntonio Huete Jimenez# https://en.wikipedia.org/wiki/Xfig 601*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/f/fig.trid.xml 602*3b9cdfa3SAntonio Huete Jimenez# https://web.archive.org/web/20070920204655/http://epb.lbl.gov/xfig/fig-format.html 603*3b9cdfa3SAntonio Huete Jimenez# Update: Joerg Jenderek 604*3b9cdfa3SAntonio Huete Jimenez# Note: called "FIG vector drawing" by TrID, 605*3b9cdfa3SAntonio Huete Jimenez# 4 byte magic is assumed to be always at offset 0 and 606*3b9cdfa3SAntonio Huete Jimenez# verified by `fig2mpdf -v bootloader.fig && file bootloader.pdf` 607*3b9cdfa3SAntonio Huete Jimenez#0 search/1/tb #FIG FIG image text 608*3b9cdfa3SAntonio Huete Jimenez# GRR: with --keep-going option the line above gives duplicate messages 609*3b9cdfa3SAntonio Huete Jimenez0 search/1/ts #FIG 610*3b9cdfa3SAntonio Huete Jimenez>&0 use image-xfig 611*3b9cdfa3SAntonio Huete Jimenez# binary data variant with non ASCII text characters like Control-A or �C in thermostat.fig 612*3b9cdfa3SAntonio Huete Jimenez0 search/1/bs #FIG 613*3b9cdfa3SAntonio Huete Jimenez>&0 use image-xfig 614*3b9cdfa3SAntonio Huete Jimenez# display XFIG image describing text, mime type, file name extension and version 615*3b9cdfa3SAntonio Huete Jimenez0 name image-xfig 616*3b9cdfa3SAntonio Huete Jimenez>8 ubyte x FIG image text 617*3b9cdfa3SAntonio Huete Jimenez#!:mime text/plain 618*3b9cdfa3SAntonio Huete Jimenez# https://reposcope.com/mimetype/image/x-xfig 619*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-xfig 620*3b9cdfa3SAntonio Huete Jimenez!:ext fig 621*3b9cdfa3SAntonio Huete Jimenez# version string like: 1.4 2.1 3.1 3.2 622327e51cbSPeter Avalos>5 string x \b, version %.3s 623*3b9cdfa3SAntonio Huete Jimenez# some times after version text like: "Produced by xfig version 3.2.5-alpha5" 624*3b9cdfa3SAntonio Huete Jimenez>8 ubyte >0x0D 625*3b9cdfa3SAntonio Huete Jimenez>>8 string x "%s" 626*3b9cdfa3SAntonio Huete Jimenez# should be point character (2Eh) of version string according to TrID 627*3b9cdfa3SAntonio Huete Jimenez#>6 ubyte !0x2E \b, at 6 %#x 628*3b9cdfa3SAntonio Huete Jimenez# caret character (23h) at the beginning in most or probaly all exanples 629*3b9cdfa3SAntonio Huete Jimenez#>0 ubyte !0x23 \b, starting with character %#x 630*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/DeskMate_Draw 631*3b9cdfa3SAntonio Huete Jimenez# http://en.wikipedia.org/wiki/Deskmate 632*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/d/dm-fig.trid.xml 633*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 634*3b9cdfa3SAntonio Huete Jimenez# Note: called "DeskMate Draw drawing" by TrID 635*3b9cdfa3SAntonio Huete Jimenez0 string \x14FIG DeskMate Drawing 636*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 637*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-deskmate-fig 638*3b9cdfa3SAntonio Huete Jimenez!:ext fig 639*3b9cdfa3SAntonio Huete Jimenez# TODO: 640*3b9cdfa3SAntonio Huete Jimenez# "Cabri 3D Figure" by TrID fig-cabri.trid.xml 641*3b9cdfa3SAntonio Huete Jimenez# "Playmation Figure" by TrID fig-playmation.trid.xml 642327e51cbSPeter Avalos 643327e51cbSPeter Avalos# PHIGS 644327e51cbSPeter Avalos0 string ARF_BEGARF PHIGS clear text archive 645327e51cbSPeter Avalos0 string @(#)SunPHIGS SunPHIGS 646327e51cbSPeter Avalos# version number follows, in the form m.n 647327e51cbSPeter Avalos>40 string SunBin binary 648327e51cbSPeter Avalos>32 string archive archive 649327e51cbSPeter Avalos 650327e51cbSPeter Avalos# GKS (Graphics Kernel System) 651327e51cbSPeter Avalos0 string GKSM GKS Metafile 652327e51cbSPeter Avalos>24 string SunGKS \b, SunGKS 653327e51cbSPeter Avalos 654327e51cbSPeter Avalos# CGM image files 655327e51cbSPeter Avalos0 string BEGMF clear text Computer Graphics Metafile 656327e51cbSPeter Avalos 657327e51cbSPeter Avalos# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de) 658327e51cbSPeter Avalos0 string yz MGR bitmap, modern format, 8-bit aligned 659327e51cbSPeter Avalos0 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned 660327e51cbSPeter Avalos0 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned 661327e51cbSPeter Avalos0 string yx MGR bitmap, modern format, squeezed 662327e51cbSPeter Avalos 663327e51cbSPeter Avalos# Fuzzy Bitmap (FBM) images 664327e51cbSPeter Avalos0 string %bitmap\0 FBM image data 665327e51cbSPeter Avalos>30 long 0x31 \b, mono 666327e51cbSPeter Avalos>30 long 0x33 \b, color 667327e51cbSPeter Avalos 668327e51cbSPeter Avalos# facsimile data 669327e51cbSPeter Avalos1 string PC\ Research,\ Inc group 3 fax data 670*3b9cdfa3SAntonio Huete Jimenez>29 ubyte 0 \b, normal resolution (204x98 DPI) 671*3b9cdfa3SAntonio Huete Jimenez>29 ubyte 1 \b, fine resolution (204x196 DPI) 672327e51cbSPeter Avalos# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at> 673327e51cbSPeter Avalos0 string Sfff structured fax file 674327e51cbSPeter Avalos 675e8af9738SPeter Avalos# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net> 676614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/Award_BIOS_logo 677614728caSSascha Wildner# Note: verified by XnView command `nconvert -fullinfo *.EPA` 678e8af9738SPeter Avalos0 string \x11\x06 Award BIOS Logo, 136 x 84 679e8af9738SPeter Avalos!:mime image/x-award-bioslogo 680614728caSSascha Wildner!:ext epa 681e8af9738SPeter Avalos0 string \x11\x09 Award BIOS Logo, 136 x 126 682e8af9738SPeter Avalos!:mime image/x-award-bioslogo 683614728caSSascha Wildner!:ext epa 684614728caSSascha Wildner# https://telparia.com/fileFormatSamples/image/epa/IO.EPA 685614728caSSascha Wildner# Note: by bitmap-awbm-v1x1009.trid.xml called "Award BIOS logo bitmap (128x126) (v1)" 686614728caSSascha Wildner# verified by RECOIL `recoil2png -o tmp.png IO.EPA; file tmp.png` 687614728caSSascha Wildner0 string \x10\x09 Award BIOS Logo, 128 x 126 688614728caSSascha Wildner!:mime image/x-award-bioslogo 689614728caSSascha Wildner!:ext epa 690e8af9738SPeter Avalos#0 string \x07\x1f BIOS Logo corrupted? 691e8af9738SPeter Avalos# http://www.blackfiveservices.co.uk/awbmtools.shtml 692e8af9738SPeter Avalos# http://biosgfx.narod.ru/v3/ 693e8af9738SPeter Avalos# http://biosgfx.narod.ru/abr-2/ 694e8af9738SPeter Avalos0 string AWBM 695614728caSSascha Wildner# Note: by bitmap-awbm.trid.xml called "Award BIOS logo bitmap (v2)" 696*3b9cdfa3SAntonio Huete Jimenez>4 uleshort <1981 Award BIOS Logo, version 2 697*3b9cdfa3SAntonio Huete Jimenez#>4 uleshort <1981 Award BIOS bitmap 698614728caSSascha Wildner!:mime image/x-award-bioslogo2 699614728caSSascha Wildner#!:mime image/x-award-bmp 700614728caSSascha Wildner!:ext epa/bmp 701e8af9738SPeter Avalos# image width is a multiple of 4 702*3b9cdfa3SAntonio Huete Jimenez>>4 uleshort&0x0003 0 703*3b9cdfa3SAntonio Huete Jimenez>>>4 uleshort x \b, %d 704*3b9cdfa3SAntonio Huete Jimenez>>>6 uleshort x x %d 705*3b9cdfa3SAntonio Huete Jimenez>>4 uleshort&0x0003 >0 \b, 706*3b9cdfa3SAntonio Huete Jimenez>>>4 uleshort&0x0003 =1 707*3b9cdfa3SAntonio Huete Jimenez>>>>4 uleshort x %d+3 708*3b9cdfa3SAntonio Huete Jimenez>>>4 uleshort&0x0003 =2 709*3b9cdfa3SAntonio Huete Jimenez>>>>4 uleshort x %d+2 710*3b9cdfa3SAntonio Huete Jimenez>>>4 uleshort&0x0003 =3 711*3b9cdfa3SAntonio Huete Jimenez>>>>4 uleshort x %d+1 712*3b9cdfa3SAntonio Huete Jimenez>>>6 uleshort x x %d 713e8af9738SPeter Avalos# at offset 8 starts imagedata followed by "RGB " marker 714327e51cbSPeter Avalos 71579343712SPeter Avalos# PC bitmaps (OS/2, Windows BMP files) (Greg Roelofs, newt@uchicago.edu) 7166fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\ 717e8af9738SPeter Avalos# 28bitmap_information_header.29 7186fca56fbSSascha Wildner# Note: variant starting direct with DIB header see 7196fca56fbSSascha Wildner# http://fileformats.archiveteam.org/wiki/BMP 7206fca56fbSSascha Wildner# verified by ImageMagick version 6.8.9-8 command `identify *.dib` 721*3b9cdfa3SAntonio Huete Jimenez0 uleshort 40 7226fca56fbSSascha Wildner# skip bad samples like GAME by looking for valid number of color planes 7236fca56fbSSascha Wildner>12 uleshort 1 Device independent bitmap graphic 724970935fdSSascha Wildner!:mime image/x-ms-bmp 7256fca56fbSSascha Wildner!:apple ????BMPp 7266fca56fbSSascha Wildner!:ext dib 727*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong x \b, %d x 728*3b9cdfa3SAntonio Huete Jimenez>>8 ulelong x %d x 729*3b9cdfa3SAntonio Huete Jimenez>>14 uleshort x %d 7306fca56fbSSascha Wildner# number of color planes (must be 1) 7316fca56fbSSascha Wildner#>>12 uleshort >1 \b, %u color planes 7326fca56fbSSascha Wildner# compression method: 0~no 1~RLE 8-bit/pixel 3~Huffman 1D 7336fca56fbSSascha Wildner#>>16 ulelong 3 \b, Huffman 1D compression 7346fca56fbSSascha Wildner>>16 ulelong >0 \b, %u compression 7356fca56fbSSascha Wildner# image size is the size of raw bitmap; a dummy 0 can be given for BI_RGB bitmaps 7366fca56fbSSascha Wildner>>20 ulelong x \b, image size %u 7376fca56fbSSascha Wildner# horizontal and vertical resolution of the image (pixel per metre, signed integer) 738*3b9cdfa3SAntonio Huete Jimenez>>24 ulelong >0 \b, resolution %d x 739*3b9cdfa3SAntonio Huete Jimenez>>>28 ulelong x %d px/m 7406fca56fbSSascha Wildner# number of colors in palette, or 0 to default to 2**n 7416fca56fbSSascha Wildner#>>32 ulelong >0 \b, %u colors 7426fca56fbSSascha Wildner# number of important colors used, or 0 when every color is important 7436fca56fbSSascha Wildner>>36 ulelong >0 \b, %u important colors 744614728caSSascha Wildner# From: Joerg Jenderek 745614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/VBM_(VDC_BitMap) 746614728caSSascha Wildner# Reference: http://csbruce.com/cbm/postings/csc19950906-1.txt 747614728caSSascha Wildner# http://mark0.net/download/triddefs_xml.7z 748614728caSSascha Wildner# defs/b/bitmap-vbm.trid.xml 749614728caSSascha Wildner# defs/b/bitmap-vbm-v3.trid.xml 750614728caSSascha Wildner# Note: called "VDC BitMap" by TrID 751614728caSSascha Wildner# verified by RECOIL `recoil2png -o tmp.png coke_can.vbm; file tmp.png` 752614728caSSascha Wildner# begin with a signature of 'B' 'M' 0xCB, followed by a version byte 2 or 3 753614728caSSascha Wildner# Similar to the unrelated Windows BMP format 754614728caSSascha Wildner# check for VDC bitmap and then display image dimension and version 755614728caSSascha Wildner0 name bitmap-vbm 756614728caSSascha Wildner>2 ubyte 0xCB VDC bitmap 757614728caSSascha Wildner!:mime image/x-commodore-vbm 758614728caSSascha Wildner# http://recoil.sourceforge.net/formats.html 759614728caSSascha Wildner!:ext bm/vbm 760614728caSSascha Wildner# the VBM format version number: 2 or 3 761614728caSSascha Wildner>>3 ubyte x \b, version %u 762614728caSSascha Wildner# width of the image in Hi/Lo format 763614728caSSascha Wildner>>4 ubeshort x \b, %u 764614728caSSascha Wildner# height of the image 765614728caSSascha Wildner>>6 ubeshort x x %u 766614728caSSascha Wildner# version 3 images have the following additional header information 767614728caSSascha Wildner>>3 ubyte =3 768614728caSSascha Wildner# data-encoding type: 0~uncompressed 1~RLE-compressed 769614728caSSascha Wildner>>>8 ubyte 0 \b, uncompressed 770614728caSSascha Wildner>>>8 ubyte 1 \b, RLE-compressed 771614728caSSascha Wildner# byte code for general RLE repetitions 772614728caSSascha Wildner#>>>9 ubyte x \b, RLE repetition code 0x%x 773614728caSSascha Wildner# reserved := 0 774614728caSSascha Wildner#>>>14 short >0 \b, reserved 0x%x 775614728caSSascha Wildner# length of comment text; 0~no comment text 776614728caSSascha Wildner#>>>16 ubeshort >0 \b, comment length %u 777614728caSSascha Wildner>>>16 pstring/H >0 \b, comment "%s" 778614728caSSascha Wildner# 77979343712SPeter Avalos0 string BM 780614728caSSascha Wildner# check for magic and version 2 of VDC bitmap or BMP with cbSize=715=CB02 781*3b9cdfa3SAntonio Huete Jimenez>2 ubeshort 0xCB02 782614728caSSascha Wildner>>6 short =0 783614728caSSascha Wildner>>>0 use bitmap-bmp 784614728caSSascha Wildner# VDC bitmap height or maybe a few OS/2 BMP with nonzero "hotspot coordinates" 785614728caSSascha Wildner>>6 short !0 786614728caSSascha Wildner>>>0 use bitmap-vbm 787614728caSSascha Wildner# check for magic and version 3 of VDC bitmap or BMP with cbSize=971=CB03 788*3b9cdfa3SAntonio Huete Jimenez>2 ubeshort 0xCB03 789614728caSSascha Wildner# check for reserved value (=0) of VDC bitmap 790614728caSSascha Wildner>>14 short =0 791614728caSSascha Wildner>>>0 use bitmap-vbm 792614728caSSascha Wildner# BMP with cbSize=????03CBh and dib header size != 0 793614728caSSascha Wildner>>14 short !0 794614728caSSascha Wildner>>>0 use bitmap-bmp 795614728caSSascha Wildner# cbSize is size of header or file size of Windows BMP bitmap 796614728caSSascha Wildner>2 default x 797614728caSSascha Wildner>>0 use bitmap-bmp 798614728caSSascha Wildner0 name bitmap-bmp 799*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 12 PC bitmap, OS/2 1.x format 800614728caSSascha Wildner!:mime image/bmp 801614728caSSascha Wildner!:ext bmp 802*3b9cdfa3SAntonio Huete Jimenez>>18 uleshort x \b, %d x 803*3b9cdfa3SAntonio Huete Jimenez>>20 uleshort x %d 804614728caSSascha Wildner# number of color planes (must be 1) 805*3b9cdfa3SAntonio Huete Jimenez#>>22 uleshort !1 \b, %u color planes 806614728caSSascha Wildner# number of bits per pixel (color depth); found 4 8 807*3b9cdfa3SAntonio Huete Jimenez>>24 uleshort x x %d 808614728caSSascha Wildner# x, y coordinates of the hotspot 809614728caSSascha Wildner>>6 uleshort >0 \b, hotspot %ux 810614728caSSascha Wildner>>>8 uleshort x \b%u 811614728caSSascha Wildner# cbSize; size of file or header like 1Ah 228C8h 812614728caSSascha Wildner>>2 ulelong x \b, cbSize %u 813614728caSSascha Wildner#>>2 ulelong x \b, cbSize 0x%8.8x 814614728caSSascha Wildner# offBits; offset to bitmap data like: 815614728caSSascha Wildner>>10 ulelong x \b, bits offset %u 816614728caSSascha Wildner# http://fileformats.archiveteam.org/wiki/BMP#OS.2F2_BMP_2.0 no examples found 817614728caSSascha Wildner>14 ulelong 48 PC bitmap, OS/2 2.x format (DIB header size=48) 818614728caSSascha Wildner>14 ulelong 24 PC bitmap, OS/2 2.x format (DIB header size=24) 819614728caSSascha Wildner# http://entropymine.com/jason/bmpsuite/bmpsuite/q/pal8os2v2-16.bmp 820614728caSSascha Wildner# Note: by bitmap-bmp-v2o.trid.xml called "Windows Bitmap (v2o)" 821614728caSSascha Wildner>14 ulelong 16 PC bitmap, OS/2 2.x format (DIB header size=16) 822614728caSSascha Wildner!:mime image/bmp 823614728caSSascha Wildner!:apple ????BMPp 824614728caSSascha Wildner!:ext bmp 825614728caSSascha Wildner# image width and height fields are unsigned integers for OS/2 826614728caSSascha Wildner>>18 ulelong x \b, %u x 827614728caSSascha Wildner>>22 ulelong x %u 828614728caSSascha Wildner# number of bits per pixel (color depth); found 8 829614728caSSascha Wildner>>28 uleshort >1 x %u 830614728caSSascha Wildner# x, y coordinates of the hotspot 831614728caSSascha Wildner>>6 uleshort >0 \b, hotspot %ux 832614728caSSascha Wildner>>>8 uleshort x \b%u 833614728caSSascha Wildner# number of color planes (must be 1) 834614728caSSascha Wildner#>>26 uleshort >1 \b, %u color planes 835614728caSSascha Wildner# cbSize; size of file like: 241E 836614728caSSascha Wildner>>2 ulelong x \b, cbSize %u 837614728caSSascha Wildner#>>2 ulelong x \b, cbSize 0x%x 838614728caSSascha Wildner# offBits; offset to bitmap data like: 41E 839614728caSSascha Wildner>>10 ulelong x \b, bits offset %u 840614728caSSascha Wildner#>>10 ulelong x \b, bits offset 0x%x 841*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 64 PC bitmap, OS/2 2.x format 842614728caSSascha Wildner!:mime image/bmp 8436fca56fbSSascha Wildner!:apple ????BMPp 8446fca56fbSSascha Wildner!:ext bmp 8456fca56fbSSascha Wildner# image width and height fields are unsigned integers for OS/2 8466fca56fbSSascha Wildner>>18 ulelong x \b, %u x 8476fca56fbSSascha Wildner>>22 ulelong x %u 8486fca56fbSSascha Wildner# number of bits per pixel (color depth); found 1 4 8 8496fca56fbSSascha Wildner>>28 uleshort >1 x %u 8506fca56fbSSascha Wildner# x, y coordinates of the hotspot 8516fca56fbSSascha Wildner>>6 uleshort >0 \b, hotspot %ux 8526fca56fbSSascha Wildner>>>8 uleshort x \b%u 8536fca56fbSSascha Wildner>>26 uleshort >1 \b, %u color planes 8546fca56fbSSascha Wildner# cbSize; size of file or headers 8556fca56fbSSascha Wildner>>2 ulelong x \b, cbSize %u 856614728caSSascha Wildner# BMP with cbSize 000002CBh=715 or 000003CBh=971 maybe misinterpreted as VDC bitmap 857614728caSSascha Wildner#>>2 ulelong x \b, cbSize %#x 8586fca56fbSSascha Wildner# offBits; offset to bitmap data like 56h 5Eh 8Eh 43Eh 8596fca56fbSSascha Wildner>>10 ulelong x \b, bits offset %u 860614728caSSascha Wildner#>>10 ulelong x \b, bits offset %#x 861614728caSSascha Wildner#>>(10.l) ubequad !0 \b, bits %#16.16llx 8626fca56fbSSascha Wildner# BITMAPV2INFOHEADER adds RGB bit masks 863*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 52 PC bitmap, Adobe Photoshop 864614728caSSascha Wildner!:mime image/bmp 8656fca56fbSSascha Wildner!:apple ????BMPp 8666fca56fbSSascha Wildner!:ext bmp 867*3b9cdfa3SAntonio Huete Jimenez>>18 ulelong x \b, %d x 868*3b9cdfa3SAntonio Huete Jimenez>>22 ulelong x %d x 869614728caSSascha Wildner# number of bits per pixel (color depth); found 16 32 870*3b9cdfa3SAntonio Huete Jimenez>>28 uleshort x %d 871614728caSSascha Wildner# x, y coordinates of the hotspot; should be zero for Windows variant 872614728caSSascha Wildner>>6 uleshort >0 \b, hotspot %ux 873614728caSSascha Wildner>>>8 uleshort x \b%u 874614728caSSascha Wildner# cbSize; size of file like: 14A 7F42 875614728caSSascha Wildner>>2 ulelong x \b, cbSize %u 876614728caSSascha Wildner#>>2 ulelong x \b, cbSize 0x%x 877614728caSSascha Wildner# offBits; offset to bitmap data like: 42h 878614728caSSascha Wildner>>10 ulelong x \b, bits offset %u 879614728caSSascha Wildner#>>10 ulelong x \b, bits offset 0x%x 8806fca56fbSSascha Wildner# BITMAPV3INFOHEADER adds alpha channel bit mask 881*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 56 PC bitmap, Adobe Photoshop with alpha channel mask 882614728caSSascha Wildner!:mime image/bmp 8836fca56fbSSascha Wildner!:apple ????BMPp 8846fca56fbSSascha Wildner!:ext bmp 885*3b9cdfa3SAntonio Huete Jimenez>>18 ulelong x \b, %d x 886*3b9cdfa3SAntonio Huete Jimenez>>22 ulelong x %d x 887614728caSSascha Wildner# number of bits per pixel (color depth); found 16 32 888*3b9cdfa3SAntonio Huete Jimenez>>28 uleshort x %d 889614728caSSascha Wildner# x, y coordinates of the hotspot; should be zero for Windows variant 890614728caSSascha Wildner>>6 uleshort >0 \b, hotspot %ux 891614728caSSascha Wildner>>>8 uleshort x \b%u 892614728caSSascha Wildner# cbSize; size of file like: 4E 7F46 131DE 14046h 893614728caSSascha Wildner>>2 ulelong x \b, cbSize %u 894614728caSSascha Wildner#>>2 ulelong x \b, cbSize 0x%x 895614728caSSascha Wildner# offBits; offset to bitmap data like: 46h 896614728caSSascha Wildner>>10 ulelong x \b, bits offset %u 897614728caSSascha Wildner#>>10 ulelong x \b, bits offset 0x%x 898*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 40 8996fca56fbSSascha Wildner# jump 4 bytes before end of file/header to skip fmt-116-signature-id-118.dib 900970935fdSSascha Wildner# broken for large bitmaps 901970935fdSSascha Wildner#>>(2.l-4) ulong x PC bitmap, Windows 3.x format 902*3b9cdfa3SAntonio Huete Jimenez>>14 ulelong 40 PC bitmap, Windows 3.x format 903614728caSSascha Wildner!:mime image/bmp 9046fca56fbSSascha Wildner!:apple ????BMPp 905*3b9cdfa3SAntonio Huete Jimenez>>>18 ulelong x \b, %d x 906*3b9cdfa3SAntonio Huete Jimenez>>>22 ulelong x %d 9076fca56fbSSascha Wildner# 320 x 400 https://en.wikipedia.org/wiki/LOGO.SYS 9086fca56fbSSascha Wildner>>>18 ulequad =0x0000019000000140 x 9096fca56fbSSascha Wildner!:ext bmp/sys 9106fca56fbSSascha Wildner>>>18 ulequad !0x0000019000000140 9116fca56fbSSascha Wildner# compression method 2~RLE 4-bit/pixel implies also extension rle 9126fca56fbSSascha Wildner>>>>30 ulelong 2 x 9136fca56fbSSascha Wildner!:ext bmp/rle 914614728caSSascha Wildner# not RLE compressed and not 320x400 dimension 915614728caSSascha Wildner>>>>30 default x 916614728caSSascha Wildner# "small" dimensions like: 14x15 15x16 16x14 16x16 32x32 917614728caSSascha Wildner# https://en.wikipedia.org/wiki/Favicon 918614728caSSascha Wildner>>>>>18 ulequad&0xffFFffC0ffFFffC0 =0 x 919614728caSSascha Wildner# https://www.politi-kdigital.de/favicon.ico 920614728caSSascha Wildner# http://forum.rpc1.org/favicon.ico 921614728caSSascha Wildner!:ext bmp/ico 922614728caSSascha Wildner# "big" dimensions > 63 923614728caSSascha Wildner>>>>>18 default x x 9246fca56fbSSascha Wildner!:ext bmp 9256fca56fbSSascha Wildner# number of bits per pixel (color depth); found 1 2 4 8 16 24 32 926*3b9cdfa3SAntonio Huete Jimenez>>>28 uleshort x %d 9276fca56fbSSascha Wildner# x, y coordinates of the hotspot; there is no hotspot in bitmaps, so values 0 9286fca56fbSSascha Wildner#>>>6 uleshort >0 \b, hotspot %ux 9296fca56fbSSascha Wildner#>>>>8 uleshort x \b%u 9306fca56fbSSascha Wildner# number of color planes (must be 1), except badplanes.bmp for testing 9316fca56fbSSascha Wildner#>>>26 uleshort >1 \b, %u color planes 9326fca56fbSSascha Wildner# compression method: 0~no 1~RLE 8-bit/pixel 2~RLE 4-bit/pixel 3~Huffman 1D 6~RGBA bit field masks 9336fca56fbSSascha Wildner#>>>30 ulelong 3 \b, Huffman 1D compression 9346fca56fbSSascha Wildner>>>30 ulelong >0 \b, %u compression 9356fca56fbSSascha Wildner# image size is the size of raw bitmap; a dummy 0 can be given for BI_RGB bitmaps 9366fca56fbSSascha Wildner>>>34 ulelong >0 \b, image size %u 9376fca56fbSSascha Wildner# horizontal and vertical resolution of the image (pixel per metre, signed integer) 938*3b9cdfa3SAntonio Huete Jimenez>>>38 ulelong >0 \b, resolution %d x 939*3b9cdfa3SAntonio Huete Jimenez>>>>42 ulelong x %d px/m 9406fca56fbSSascha Wildner# number of colors in palette 16 256, or 0 to default to 2**n 9416fca56fbSSascha Wildner#>>>46 ulelong >0 \b, %u colors 9426fca56fbSSascha Wildner# number of important colors used, or 0 when every color is important 9436fca56fbSSascha Wildner>>>50 ulelong >0 \b, %u important colors 9446fca56fbSSascha Wildner# cbSize; often size of file 9456fca56fbSSascha Wildner>>>2 ulelong x \b, cbSize %u 946614728caSSascha Wildner#>>>2 ulelong x \b, cbSize %#x 9476fca56fbSSascha Wildner# offBits; offset to bitmap data like 36h 76h BEh 236h 406h 436h 4E6h 9486fca56fbSSascha Wildner>>>10 ulelong x \b, bits offset %u 949614728caSSascha Wildner#>>>10 ulelong x \b, bits offset %#x 950614728caSSascha Wildner#>>>(10.l) ubequad !0 \b, bits %#16.16llxd 951*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 124 PC bitmap, Windows 98/2000 and newer format 952614728caSSascha Wildner!:mime image/bmp 953614728caSSascha Wildner!:ext bmp 954*3b9cdfa3SAntonio Huete Jimenez>>18 ulelong x \b, %d x 955*3b9cdfa3SAntonio Huete Jimenez>>22 ulelong x %d x 956614728caSSascha Wildner# color planes; must be 1 957614728caSSascha Wildner#>>>26 uleshort >1 \b, %u color planes 958614728caSSascha Wildner# number of bits per pixel (color depth); found 4 8 16 24 32 1 (fmt-119-signature-id-121.bmp) 0 (rgb24jpeg.bmp rgb24png.bmp) 959*3b9cdfa3SAntonio Huete Jimenez>>28 uleshort x %d 960614728caSSascha Wildner# x, y coordinates of the hotspot; should be zero for Windows variant 961*3b9cdfa3SAntonio Huete Jimenez>>6 uleshort >0 \b, hotspot %ux 962*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort x \b%u 963614728caSSascha Wildner# cbSize; size of file like: 8E AA 48A 999 247A 4F02 7F8A 3F88E B216E 1D4C8A 100008A 964614728caSSascha Wildner>>2 ulelong x \b, cbSize %u 965614728caSSascha Wildner#>>2 ulelong x \b, cbSize 0x%x 966614728caSSascha Wildner# offBits; offset to bitmap data like: 8A 47A ABABABAB (fmt-119-signature-id-121.bmp) 967614728caSSascha Wildner>>10 ulelong x \b, bits offset %u 968614728caSSascha Wildner#>>10 ulelong x \b, bits offset 0x%x 969*3b9cdfa3SAntonio Huete Jimenez>14 ulelong 108 PC bitmap, Windows 95/NT4 and newer format 970614728caSSascha Wildner!:mime image/bmp 971614728caSSascha Wildner!:ext bmp 972*3b9cdfa3SAntonio Huete Jimenez>>18 ulelong x \b, %d x 973*3b9cdfa3SAntonio Huete Jimenez>>22 ulelong x %d x 974614728caSSascha Wildner# number of bits per pixel (color depth); found 8 24 32 975*3b9cdfa3SAntonio Huete Jimenez>>28 uleshort x %d 976614728caSSascha Wildner# x, y coordinates of the hotspot; should be zero for Windows variant 977*3b9cdfa3SAntonio Huete Jimenez>>6 uleshort >0 \b, hotspot %ux 978*3b9cdfa3SAntonio Huete Jimenez>>>8 uleshort x \b%u 979614728caSSascha Wildner# cbSize; size of file like: 82 8A 9A 9F86 1E07A 3007A 88B7A C007A 980614728caSSascha Wildner>>2 ulelong x \b, cbSize %u 981614728caSSascha Wildner#>>2 ulelong x \b, cbSize 0x%x 982614728caSSascha Wildner# offBits; offset to bitmap data like: 7A 7E 46A 983614728caSSascha Wildner>>10 ulelong x \b, bits offset %u 984614728caSSascha Wildner#>>10 ulelong x \b, bits offset 0x%x 9856fca56fbSSascha Wildner# Update: Joerg Jenderek 9866fca56fbSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/OS/2_Icon 9876fca56fbSSascha Wildner# Reference: http://www.fileformat.info 9886fca56fbSSascha Wildner# /format/os2bmp/spec/902d5c253f2a43ada39c2b81034f27fd/view.htm 9896fca56fbSSascha Wildner# Note: verified by command like `deark -l -d3 OS2MEMU.ICO` 9906fca56fbSSascha Wildner0 string IC 9916fca56fbSSascha Wildner# skip Lotus smart icon *.smi by looking for valid hotspot coordinates 9926fca56fbSSascha Wildner>6 ulelong&0xFF00FF00 =0 OS/2 icon 9936fca56fbSSascha Wildner# jump 4 bytes before end of header/file and test for accessibility 9946fca56fbSSascha Wildner#>>(2.l-4) ubelong x End of header is OK! 9956fca56fbSSascha Wildner!:mime image/x-os2-ico 9966fca56fbSSascha Wildner!:ext ico 9976fca56fbSSascha Wildner# cbSize; size of header or file in bytes like 1ah 120h 420h 9986fca56fbSSascha Wildner>>2 ulelong x \b, cbSize %u 9996fca56fbSSascha Wildner# xHotspot, yHotspot; coordinates of the hotspot for icons like 16 32 10006fca56fbSSascha Wildner>>6 uleshort x \b, hotspot %ux 10016fca56fbSSascha Wildner>>8 uleshort x \b%u 10026fca56fbSSascha Wildner# offBits; offset in bytes to the beginning of the bit-map pel data like 20h 10036fca56fbSSascha Wildner>>10 ulelong x \b, bits offset %u 1004614728caSSascha Wildner#>>(10.l) ubequad x \b, bits %#16.16llx 1005327e51cbSPeter Avalos#0 string PI PC pointer image data 1006327e51cbSPeter Avalos#0 string CI PC color icon data 10076fca56fbSSascha Wildner0 string CI 10086fca56fbSSascha Wildner# test also for valid dib header sizes 12 or 64 10096fca56fbSSascha Wildner>14 ulelong <65 OS/2 10106fca56fbSSascha Wildner# test also for valid hotspot coordinates 10116fca56fbSSascha Wildner#>>6 ulelong&0xFE00FE00 =0 OS/2 10126fca56fbSSascha Wildner!:mime image/x-os2-ico 10136fca56fbSSascha Wildner!:ext ico 10146fca56fbSSascha Wildner>>14 ulelong 12 1.x color icon 10156fca56fbSSascha Wildner# image width and height fields are unsigned integers for OS/2 10166fca56fbSSascha Wildner>>>18 uleshort x %u x 10176fca56fbSSascha Wildner# stored height = 2 * real height 10186fca56fbSSascha Wildner>>>20 uleshort/2 x %u 10196fca56fbSSascha Wildner# number of bits per pixel (color depth). Typical 32 24 16 8 4 but only 1 found 10206fca56fbSSascha Wildner>>>24 uleshort >1 x %u 10216fca56fbSSascha Wildner# color planes; must be 1 10226fca56fbSSascha Wildner#>>>22 uleshort >1 \b, %u color planes 10236fca56fbSSascha Wildner>>14 ulelong 64 2.x color icon 10246fca56fbSSascha Wildner# image width and height 10256fca56fbSSascha Wildner>>>18 ulelong x %u x 10266fca56fbSSascha Wildner# stored height = 2 * real height 10276fca56fbSSascha Wildner>>>22 ulelong/2 x %u 10286fca56fbSSascha Wildner# number of bits per pixel (color depth). only 1 found 10296fca56fbSSascha Wildner>>>28 uleshort >1 x %u 10306fca56fbSSascha Wildner#>>>26 uleshort >1 \b, %u color planes 10316fca56fbSSascha Wildner# compression method: 0~no 3~Huffman 1D 10326fca56fbSSascha Wildner>>>30 ulelong 3 \b, Huffman 1D compression 10336fca56fbSSascha Wildner#>>>30 ulelong >0 \b, %u compression 10346fca56fbSSascha Wildner# xHotspot, yHotspot; coordinates of the hotspot like 0 1 16 20 32 33 63 64 10356fca56fbSSascha Wildner>>6 uleshort x \b, hotspot %ux 10366fca56fbSSascha Wildner>>8 uleshort x \b%u 10376fca56fbSSascha Wildner# cbSize; size of header or maybe file in bytes like 1Ah 4Eh 84Eh 10386fca56fbSSascha Wildner>>2 ulelong x \b, cbSize %u 10396fca56fbSSascha Wildner#>>2 ulelong x \b, cbSize %x 10406fca56fbSSascha Wildner# offBits; offset to bitmap data (pixel array) like E4h 3Ah 66h 6Ah 33Ah 4A4h 10416fca56fbSSascha Wildner>>10 ulelong x \b, bits offset %u 1042614728caSSascha Wildner#>>10 ulelong x \b, bits offset %#x 1043614728caSSascha Wildner#>>(10.l) ubequad !0 \b, bits %#16.16llx 10446fca56fbSSascha Wildner# dib header size: 12~Ch~OS/2 1.x 64~40h~OS/2 2.x 10456fca56fbSSascha Wildner#>>14 ulelong x \b, dib header size %u 1046327e51cbSPeter Avalos#0 string CP PC color pointer image data 10476fca56fbSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/OS/2_Pointer 10486fca56fbSSascha Wildner# Reference: http://www.fileformat.info/format/os2bmp/egff.htm 10496fca56fbSSascha Wildner0 string CP 1050970935fdSSascha Wildner# skip many Corel Photo-Paint image "CPT9FILE" by checking for positive bits offset 1051970935fdSSascha Wildner>10 ulelong >0 10526fca56fbSSascha Wildner# skip CPU-Z Report by checking for valid dib header sizes 12 or 64 1053970935fdSSascha Wildner>>14 ulelong =12 1054970935fdSSascha Wildner>>>0 use os2-ptr 1055970935fdSSascha Wildner>>14 ulelong =64 1056970935fdSSascha Wildner>>>0 use os2-ptr 1057970935fdSSascha Wildner# display information of OS/2 pointer bitmaps 1058970935fdSSascha Wildner0 name os2-ptr 1059970935fdSSascha Wildner>14 ulelong x OS/2 10606fca56fbSSascha Wildner# http://extension.nirsoft.net/PTR 10616fca56fbSSascha Wildner!:mime image/x-ibm-pointer 10626fca56fbSSascha Wildner!:ext ptr 10636fca56fbSSascha Wildner>>14 ulelong 12 1.x color pointer 10646fca56fbSSascha Wildner# image width and height fields are unsigned integers for OS/2 10656fca56fbSSascha Wildner>>>18 uleshort x %u x 10666fca56fbSSascha Wildner# stored height = 2 * real height 10676fca56fbSSascha Wildner>>>20 uleshort/2 x %u 10686fca56fbSSascha Wildner# number of bits per pixel (color depth). Typical 32 24 16 8 4 but only 1 found 10696fca56fbSSascha Wildner>>>24 uleshort >1 x %u 10706fca56fbSSascha Wildner# color planes; must be 1 10716fca56fbSSascha Wildner#>>>22 uleshort >1 \b, %u color planes 10726fca56fbSSascha Wildner>>14 ulelong 64 2.x color pointer 10736fca56fbSSascha Wildner# image width and height 10746fca56fbSSascha Wildner>>>18 ulelong x %u x 10756fca56fbSSascha Wildner# stored height = 2 * real height 10766fca56fbSSascha Wildner>>>22 ulelong/2 x %u 10776fca56fbSSascha Wildner# number of bits per pixel (color depth). only 1 found 10786fca56fbSSascha Wildner>>>28 uleshort >1 x %u 10796fca56fbSSascha Wildner#>>>26 uleshort >1 \b, %u color planes 10806fca56fbSSascha Wildner# compression method: 0~no 3~Huffman 1D 10816fca56fbSSascha Wildner>>>30 ulelong 3 \b, Huffman 1D compression 10826fca56fbSSascha Wildner#>>>30 ulelong >0 \b, %u compression 10836fca56fbSSascha Wildner# xHotspot, yHotspot; coordinates of the hotspot like 0 3 4 8 15 16 23 27 31 10846fca56fbSSascha Wildner>>6 uleshort x \b, hotspot %ux 10856fca56fbSSascha Wildner>>8 uleshort x \b%u 10866fca56fbSSascha Wildner# cbSize; size of header or maybe file in bytes like 1Ah 4Eh 10876fca56fbSSascha Wildner>>2 ulelong x \b, cbSize %u 10886fca56fbSSascha Wildner#>>2 ulelong x \b, cbSize %x 10896fca56fbSSascha Wildner# offBits; offset to bitmap data (pixel array) like 6Ah A4h E4h 4A4h 10906fca56fbSSascha Wildner>>10 ulelong x \b, bits offset %u 1091614728caSSascha Wildner#>>10 ulelong x \b, bits offset %#x 1092614728caSSascha Wildner#>>(10.l) ubequad !0 \b, bits %#16.16llx 10936fca56fbSSascha Wildner# dib header size: 12~Ch~OS/2 1.x 64~40h~OS/2 2.x 10946fca56fbSSascha Wildner#>>14 ulelong x \b, dib header size %u 1095327e51cbSPeter Avalos# Conflicts with other entries [BABYL] 10966fca56fbSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/BMP#OS.2F2_Bitmap_Array 10976fca56fbSSascha Wildner# Note: container for OS/2 icon "IC", color icon "CI", color pointer "CP" or bitmap "BM" 1098327e51cbSPeter Avalos#0 string BA PC bitmap array data 10996fca56fbSSascha Wildner0 string BA 11006fca56fbSSascha Wildner# skip old Emacs RMAIL BABYL ./mail.news by checking for low header size 11016fca56fbSSascha Wildner>2 ulelong <0x004c5942 OS/2 graphic array 11026fca56fbSSascha Wildner!:mime image/x-os2-graphics 11036fca56fbSSascha Wildner#!:apple ????BMPf 11046fca56fbSSascha Wildner# cbSize; size of header like 28h 5Ch 11056fca56fbSSascha Wildner>>2 ulelong x \b, cbSize %u 1106614728caSSascha Wildner#>>2 ulelong x \b, cbSize %#x 11076fca56fbSSascha Wildner# offNext; offset to data like 0 48h F2h 4Eh 64h C6h D2h D6h DAh E6h EAh 348h 11086fca56fbSSascha Wildner>>6 ulelong >0 \b, data offset %u 1109614728caSSascha Wildner#>>6 ulelong >0 \b, data offset %#x 1110614728caSSascha Wildner#>>(6.l) ubequad !0 \b, data %#16.16llx 11116fca56fbSSascha Wildner# dimensions of the intended device like 640 x 480 for VGA or 1024 x 768 11126fca56fbSSascha Wildner>>10 uleshort >0 \b, display %u 11136fca56fbSSascha Wildner>>>12 uleshort >0 x %u 11146fca56fbSSascha Wildner# usType of first array element 11156fca56fbSSascha Wildner#>>14 string x \b, usType %2.2s 11166fca56fbSSascha Wildner# 1 space char after "1st" 11176fca56fbSSascha Wildner# no *.bga examples found https://www.openwith.org/file-extensions/bga/1342 11186fca56fbSSascha Wildner>>14 string BM \b; 1st 11196fca56fbSSascha Wildner!:ext bmp/bga 11206fca56fbSSascha Wildner>>14 string CI \b; 1st 11216fca56fbSSascha Wildner!:ext ico 11226fca56fbSSascha Wildner>>14 string CP \b; 1st 11236fca56fbSSascha Wildner!:ext ico 11246fca56fbSSascha Wildner>>14 string IC \b; 1st 11256fca56fbSSascha Wildner!:ext ico 11266fca56fbSSascha Wildner# no white-black pointer found 11276fca56fbSSascha Wildner#>>14 string PT \b; 1st 11286fca56fbSSascha Wildner#!:ext 11296fca56fbSSascha Wildner>>14 indirect x 1130327e51cbSPeter Avalos 1131327e51cbSPeter Avalos# XPM icons (Greg Roelofs, newt@uchicago.edu) 1132*3b9cdfa3SAntonio Huete Jimenez# Update: Joerg Jenderek 1133*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/XPM 1134*3b9cdfa3SAntonio Huete Jimenez# Reference: http://www.x.org/docs/XPM/xpm.pdf 1135*3b9cdfa3SAntonio Huete Jimenez# http://mark0.net/download/triddefs_xml.7z/defs/b/bitmap-xpm.trid.xml 1136*3b9cdfa3SAntonio Huete Jimenez# Note: called "X PixMap bitmap" by TrID and "X-Windows Pixmap Image" by DROID via PUID x-fmt/208 1137*3b9cdfa3SAntonio Huete Jimenez# starting with c comment like: logo.xpm 1138*3b9cdfa3SAntonio Huete Jimenez0 string /*\040 1139*3b9cdfa3SAntonio Huete Jimenez# 9 byte c-comment "/* XPM */" not at the beginning like: mozicon16.xpm mozicon50.xpm (thunderbird) 1140*3b9cdfa3SAntonio Huete Jimenez>0 search/0xCE /*\ XPM\ */ 1141*3b9cdfa3SAntonio Huete Jimenez# skip DROID x-fmt-208-signature-id-620.xpm by looking for char aray without explict length 1142*3b9cdfa3SAntonio Huete Jimenez# and match mh-logo.xpm (emacs) 1143*3b9cdfa3SAntonio Huete Jimenez>>&0 search/1249 [] 1144*3b9cdfa3SAntonio Huete Jimenez>>>0 use xpm-image 1145*3b9cdfa3SAntonio Huete Jimenez# non standard because no 9 byte c-comment "/* XPM */" like: logo.xpm in qemu package 1146*3b9cdfa3SAntonio Huete Jimenez>0 default x 1147*3b9cdfa3SAntonio Huete Jimenez# words are separated by a white space which can be composed of space and tabulation characters 1148*3b9cdfa3SAntonio Huete Jimenez>>0 search/0x52 static\040char\040 1149*3b9cdfa3SAntonio Huete Jimenez# skip debug.c testmlc.c by looking for char aray without explict length 1150*3b9cdfa3SAntonio Huete Jimenez# https://www.clamav.net/downloads/production/clamav-0.104.2.tar.gz 1151*3b9cdfa3SAntonio Huete Jimenez# clamav-0.104.2\libclammspack\mspack\debug.c 1152*3b9cdfa3SAntonio Huete Jimenez>>>&0 search/64 [] 1153*3b9cdfa3SAntonio Huete Jimenez>>>>0 use xpm-image 1154*3b9cdfa3SAntonio Huete Jimenez# display X pixmap image information 1155*3b9cdfa3SAntonio Huete Jimenez0 name xpm-image 1156*3b9cdfa3SAntonio Huete Jimenez>0 string x X pixmap image text 1157*3b9cdfa3SAntonio Huete Jimenez#!:mime text/plain 1158*3b9cdfa3SAntonio Huete Jimenez# https://reposcope.com/mimetype/image/x-xpixmap 1159*3b9cdfa3SAntonio Huete Jimenez# alias 1160*3b9cdfa3SAntonio Huete Jimenez#!:mime image/x-xpm 1161*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-xpixmap 1162*3b9cdfa3SAntonio Huete Jimenez!:ext xpm 1163*3b9cdfa3SAntonio Huete Jimenez# NO pm example found! 1164*3b9cdfa3SAntonio Huete Jimenez#!:ext xpm/pm 1165*3b9cdfa3SAntonio Huete Jimenez# look for start of character array at beginning of a line like: psetupl.xpm (OpenOffice 4.1.7) 1166*3b9cdfa3SAntonio Huete Jimenez>0 search/0x406 \n" 1167*3b9cdfa3SAntonio Huete Jimenez# DEBUG VALUES string 1168*3b9cdfa3SAntonio Huete Jimenez#>>&0 string x '%s' 1169*3b9cdfa3SAntonio Huete Jimenez# width with optional white space before like: 16 24 32 48 1280 1170*3b9cdfa3SAntonio Huete Jimenez>>&0 regex/8 [0-9]{1,5} \b, %s 1171*3b9cdfa3SAntonio Huete Jimenez# height with white space like: 15 16 17 24 32 48 1024 1172*3b9cdfa3SAntonio Huete Jimenez>>>&0 regex/8 [0-9]{1,5} x %s 1173*3b9cdfa3SAntonio Huete Jimenez# number of colors with white space like: 1 2 3 4 5 8 11 14 162 255 but unrelistic 4294967295 by hardcopy tool 1174*3b9cdfa3SAntonio Huete Jimenez>>>>&0 regex/12 [0-9]{1,9} x %s 1175*3b9cdfa3SAntonio Huete Jimenez# chars_per_pixel with white space like: 1 2 1176*3b9cdfa3SAntonio Huete Jimenez>>>>>&0 regex/14 [0-9]{1,2} \b, %s chars/pixel 1177*3b9cdfa3SAntonio Huete Jimenez# non standard because not starting with 9 byte c-comment "/* XPM */" 1178*3b9cdfa3SAntonio Huete Jimenez>0 string !/*\ XPM\ */ 1179*3b9cdfa3SAntonio Huete Jimenez>>0 string x \b, 1st line "%s" 1180327e51cbSPeter Avalos 1181327e51cbSPeter Avalos# Utah Raster Toolkit RLE images (janl@ifi.uio.no) 1182*3b9cdfa3SAntonio Huete Jimenez0 uleshort 0xcc52 RLE image data, 1183*3b9cdfa3SAntonio Huete Jimenez>6 uleshort x %d x 1184*3b9cdfa3SAntonio Huete Jimenez>8 uleshort x %d 1185*3b9cdfa3SAntonio Huete Jimenez>2 uleshort >0 \b, lower left corner: %d 1186*3b9cdfa3SAntonio Huete Jimenez>4 uleshort >0 \b, lower right corner: %d 1187*3b9cdfa3SAntonio Huete Jimenez>10 ubyte&0x1 =0x1 \b, clear first 1188*3b9cdfa3SAntonio Huete Jimenez>10 ubyte&0x2 =0x2 \b, no background 1189*3b9cdfa3SAntonio Huete Jimenez>10 ubyte&0x4 =0x4 \b, alpha channel 1190*3b9cdfa3SAntonio Huete Jimenez>10 ubyte&0x8 =0x8 \b, comment 1191*3b9cdfa3SAntonio Huete Jimenez>11 ubyte >0 \b, %d color channels 1192*3b9cdfa3SAntonio Huete Jimenez>12 ubyte >0 \b, %d bits per pixel 1193*3b9cdfa3SAntonio Huete Jimenez>13 ubyte >0 \b, %d color map channels 1194327e51cbSPeter Avalos 1195327e51cbSPeter Avalos# image file format (Robert Potter, potter@cs.rochester.edu) 1196327e51cbSPeter Avalos0 string Imagefile\ version- iff image data 1197327e51cbSPeter Avalos# this adds the whole header (inc. version number), informative but longish 1198327e51cbSPeter Avalos>10 string >\0 %s 1199327e51cbSPeter Avalos 1200327e51cbSPeter Avalos# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com) 1201*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0x59a66a95 Sun raster image data 1202*3b9cdfa3SAntonio Huete Jimenez>4 ubelong >0 \b, %d x 1203*3b9cdfa3SAntonio Huete Jimenez>8 ubelong >0 %d, 1204*3b9cdfa3SAntonio Huete Jimenez>12 ubelong >0 %d-bit, 1205*3b9cdfa3SAntonio Huete Jimenez#>16 ubelong >0 %d bytes long, 1206*3b9cdfa3SAntonio Huete Jimenez>20 ubelong 0 old format, 1207*3b9cdfa3SAntonio Huete Jimenez#>20 ubelong 1 standard, 1208*3b9cdfa3SAntonio Huete Jimenez>20 ubelong 2 compressed, 1209*3b9cdfa3SAntonio Huete Jimenez>20 ubelong 3 RGB, 1210*3b9cdfa3SAntonio Huete Jimenez>20 ubelong 4 TIFF, 1211*3b9cdfa3SAntonio Huete Jimenez>20 ubelong 5 IFF, 1212*3b9cdfa3SAntonio Huete Jimenez>20 ubelong 0xffff reserved for testing, 1213*3b9cdfa3SAntonio Huete Jimenez>24 ubelong 0 no colormap 1214*3b9cdfa3SAntonio Huete Jimenez>24 ubelong 1 RGB colormap 1215*3b9cdfa3SAntonio Huete Jimenez>24 ubelong 2 raw colormap 1216*3b9cdfa3SAntonio Huete Jimenez#>28 ubelong >0 colormap is %d bytes long 1217327e51cbSPeter Avalos 1218327e51cbSPeter Avalos# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com) 1219327e51cbSPeter Avalos# 1220327e51cbSPeter Avalos# See 1221327e51cbSPeter Avalos# http://reality.sgi.com/grafica/sgiimage.html 1222327e51cbSPeter Avalos# 1223*3b9cdfa3SAntonio Huete Jimenez0 ubeshort 474 SGI image data 1224*3b9cdfa3SAntonio Huete Jimenez#>2 ubyte 0 \b, verbatim 1225*3b9cdfa3SAntonio Huete Jimenez>2 ubyte 1 \b, RLE 1226*3b9cdfa3SAntonio Huete Jimenez#>3 ubyte 1 \b, normal precision 1227*3b9cdfa3SAntonio Huete Jimenez>3 ubyte 2 \b, high precision 1228*3b9cdfa3SAntonio Huete Jimenez>4 ubeshort x \b, %d-D 1229*3b9cdfa3SAntonio Huete Jimenez>6 ubeshort x \b, %d x 1230*3b9cdfa3SAntonio Huete Jimenez>8 ubeshort x %d 1231*3b9cdfa3SAntonio Huete Jimenez>10 ubeshort x \b, %d channel 1232*3b9cdfa3SAntonio Huete Jimenez>10 ubeshort !1 \bs 1233327e51cbSPeter Avalos>80 string >0 \b, "%s" 1234327e51cbSPeter Avalos 1235327e51cbSPeter Avalos0 string IT01 FIT image data 1236*3b9cdfa3SAntonio Huete Jimenez>4 ubelong x \b, %d x 1237*3b9cdfa3SAntonio Huete Jimenez>8 ubelong x %d x 1238*3b9cdfa3SAntonio Huete Jimenez>12 ubelong x %d 1239327e51cbSPeter Avalos# 1240327e51cbSPeter Avalos0 string IT02 FIT image data 1241*3b9cdfa3SAntonio Huete Jimenez>4 ubelong x \b, %d x 1242*3b9cdfa3SAntonio Huete Jimenez>8 ubelong x %d x 1243*3b9cdfa3SAntonio Huete Jimenez>12 ubelong x %d 1244327e51cbSPeter Avalos# 1245327e51cbSPeter Avalos2048 string PCD_IPI Kodak Photo CD image pack file 1246*3b9cdfa3SAntonio Huete Jimenez>0xe02 ubyte&0x03 0x00 , landscape mode 1247*3b9cdfa3SAntonio Huete Jimenez>0xe02 ubyte&0x03 0x01 , portrait mode 1248*3b9cdfa3SAntonio Huete Jimenez>0xe02 ubyte&0x03 0x02 , landscape mode 1249*3b9cdfa3SAntonio Huete Jimenez>0xe02 ubyte&0x03 0x03 , portrait mode 1250327e51cbSPeter Avalos0 string PCD_OPA Kodak Photo CD overview pack file 1251327e51cbSPeter Avalos 1252327e51cbSPeter Avalos# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu> 1253327e51cbSPeter Avalos# FITS is the Flexible Image Transport System, the de facto standard for 1254327e51cbSPeter Avalos# data and image transfer, storage, etc., for the astronomical community. 1255327e51cbSPeter Avalos# (FITS floating point formats are big-endian.) 1256327e51cbSPeter Avalos0 string SIMPLE\ \ = FITS image data 12576fca56fbSSascha Wildner!:mime image/fits 12586fca56fbSSascha Wildner!:ext fits/fts 1259327e51cbSPeter Avalos>109 string 8 \b, 8-bit, character or unsigned binary integer 1260327e51cbSPeter Avalos>108 string 16 \b, 16-bit, two's complement binary integer 1261327e51cbSPeter Avalos>107 string \ 32 \b, 32-bit, two's complement binary integer 1262327e51cbSPeter Avalos>107 string -32 \b, 32-bit, floating point, single precision 1263327e51cbSPeter Avalos>107 string -64 \b, 64-bit, floating point, double precision 1264327e51cbSPeter Avalos 1265327e51cbSPeter Avalos# other images 1266327e51cbSPeter Avalos0 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file 1267327e51cbSPeter Avalos 1268327e51cbSPeter Avalos# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image 1269327e51cbSPeter Avalos# stuff. 1270327e51cbSPeter Avalos# 1271*3b9cdfa3SAntonio Huete Jimenez0 ubeshort 0x1010 PEX Binary Archive 1272327e51cbSPeter Avalos 1273327e51cbSPeter Avalos# DICOM medical imaging data 1274c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/DICOM#Data_format 1275c30bd091SSascha Wildner# Note: "dcm" is the official file name extension 1276c30bd091SSascha Wildner# XnView mention also "dc3" and "acr" as file name extension 1277327e51cbSPeter Avalos128 string DICM DICOM medical imaging data 127879343712SPeter Avalos!:mime application/dicom 1279c30bd091SSascha Wildner!:ext dcm/dicom/dic 1280327e51cbSPeter Avalos 1281327e51cbSPeter Avalos# XWD - X Window Dump file. 1282*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/XWD 1283*3b9cdfa3SAntonio Huete Jimenez# Reference: https://wiki.multimedia.cx/index.php?title=XWD 1284*3b9cdfa3SAntonio Huete Jimenez# http://mark0.net/download/triddefs_xml.7z/defs/x/xdm-x11.trid.xml 1285*3b9cdfa3SAntonio Huete Jimenez# Note: called "X-Windows Screen Dump (X11)" by TrID and 1286*3b9cdfa3SAntonio Huete Jimenez# "X-Windows Screen Dump" version X11 by DROID via PUID fmt/483 1287*3b9cdfa3SAntonio Huete Jimenez# verfied by XnView `nconvert -in xwd -info *` 1288*3b9cdfa3SAntonio Huete Jimenez# and ImageMagick 6.9.11 `identify -verbose *` as XWD X Windows system window dump 1289*3b9cdfa3SAntonio Huete Jimenez# and `xwud -in fig41.wxd -dumpheader` 1290327e51cbSPeter Avalos# As described in /usr/X11R6/include/X11/XWDFile.h 1291327e51cbSPeter Avalos# used by the xwd program. 1292327e51cbSPeter Avalos# Bradford Castalia, idaeim, 1/01 1293*3b9cdfa3SAntonio Huete Jimenez# updated by Adam Buchbinder, 2/09 and Joerg Jenderek, May 2022 1294e4d4ce0cSPeter Avalos# The following assumes version 7 of the format; the first long is the length 1295e4d4ce0cSPeter Avalos# of the header, which is at least 25 4-byte longs, and the one at offset 8 1296e4d4ce0cSPeter Avalos# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth, 1297e4d4ce0cSPeter Avalos# which is a maximum of 32. 1298*3b9cdfa3SAntonio Huete Jimenez# Size of the entire file header (bytes) like: 100 104 105 106 107 109 110 113 114 115 118 172 1299*3b9cdfa3SAntonio Huete Jimenez0 ubelong >99 1300*3b9cdfa3SAntonio Huete Jimenez# pixmap_format; Pixmap format; 0~1-bit (XYBitmap) format 1~single-plane (XYPixmap) 2~bitmap with two or more planes (ZPixmap) 1301*3b9cdfa3SAntonio Huete Jimenez>8 ubelong <3 1302*3b9cdfa3SAntonio Huete Jimenez# pixmap_depth; Pixmap depth; value 1 - 32 1303*3b9cdfa3SAntonio Huete Jimenez>>12 ubelong <33 1304*3b9cdfa3SAntonio Huete Jimenez# file_version; XWD_FILE_VERSION=7 1305*3b9cdfa3SAntonio Huete Jimenez>>>4 ubelong 7 1306*3b9cdfa3SAntonio Huete Jimenez# skip DROID fmt-401-signature-id-618.xwd by test for existing border field 1307*3b9cdfa3SAntonio Huete Jimenez>>>>96 ubelong x X-Window screen dump image data, version X11 1308*3b9cdfa3SAntonio Huete Jimenez# ./images (version 1.205) labeled the above entry as "XWD X Window Dump image data" 1309*3b9cdfa3SAntonio Huete Jimenez# https://reposcope.com/mimetype/image/x-xwindowdump 1310e4d4ce0cSPeter Avalos!:mime image/x-xwindowdump 1311*3b9cdfa3SAntonio Huete Jimenez#!:ext xwd 1312*3b9cdfa3SAntonio Huete Jimenez!:ext xwd/dmp 1313*3b9cdfa3SAntonio Huete Jimenez# https://www.xnview.com/en/image_formats/ NO example with x11 suffix FOUND! 1314*3b9cdfa3SAntonio Huete Jimenez#!:ext xwd/dmp/x11 1315*3b9cdfa3SAntonio Huete Jimenez# https://www.nationalarchives.gov.uk/PRONOM/fmt/401 NO example with xdm suffix FOUND! 1316*3b9cdfa3SAntonio Huete Jimenez#!:ext xwd/dmp/x11/xmd 1317*3b9cdfa3SAntonio Huete Jimenez# file comment if header > 100; so not in MARBLES.XWD and hardcopy-x-window-v11.xwd 1318*3b9cdfa3SAntonio Huete Jimenez>>>>>0 ubelong >100 1319*3b9cdfa3SAntonio Huete Jimenez# comment or windows name 1320*3b9cdfa3SAntonio Huete Jimenez>>>>>>100 string >\0 \b, "%s" 1321*3b9cdfa3SAntonio Huete Jimenez# pixmap_width; pixmap width like: 576 800 1014 1280 1419 NOT -1414812757=abABabABh 1322*3b9cdfa3SAntonio Huete Jimenez>>>>>16 ubelong x \b, %dx 1323*3b9cdfa3SAntonio Huete Jimenez# pixmap_height; pixmap height like: 449 454 600 704 720 1001 1024 NOT -1414812757=abABabABh 1324*3b9cdfa3SAntonio Huete Jimenez>>>>>20 ubelong x \b%dx 1325*3b9cdfa3SAntonio Huete Jimenez# pixmap_depth; pixmap depth 1326*3b9cdfa3SAntonio Huete Jimenez>>>>>12 ubelong x \b%d 1327*3b9cdfa3SAntonio Huete Jimenez# XOffset; Bitmap X offset; pixel numbers to ignore at the beginning of each scan-line 1328*3b9cdfa3SAntonio Huete Jimenez#>>>>>24 ubelong x \b, %u ignore 1329*3b9cdfa3SAntonio Huete Jimenez# ByteOrder; byte order of image data: 0~least significant byte first 1~most significant byte first 1330*3b9cdfa3SAntonio Huete Jimenez>>>>>28 ubelong >0 \b, order %u 1331*3b9cdfa3SAntonio Huete Jimenez# BitmapUnit; bitmap base data size unit in each scan line like: 8 16 32 1332*3b9cdfa3SAntonio Huete Jimenez#>>>>>32 ubelong x \b, unit %u 1333*3b9cdfa3SAntonio Huete Jimenez# BitmapBitOrder; bit-order of image data; apparently same as ByteOrder 1334*3b9cdfa3SAntonio Huete Jimenez#>>>>>36 ubelong x \b, bit order %u 1335*3b9cdfa3SAntonio Huete Jimenez# BitmapPad; number of padding bits added to each scan line like: 8 16 32 1336*3b9cdfa3SAntonio Huete Jimenez#>>>>>40 ubelong x \b, pad %u 1337*3b9cdfa3SAntonio Huete Jimenez# BitsPerPixel; Bits per pixel: 1~StaticGray and GrayScale 2-15~StaticColor and PseudoColor 16,24,32~TrueColor and DirectColor 1338*3b9cdfa3SAntonio Huete Jimenez#>>>>>44 ubelong x \b, %u bits/pixel 1339*3b9cdfa3SAntonio Huete Jimenez# BytesPerLine; size of each scan line in bytes 1340*3b9cdfa3SAntonio Huete Jimenez#>>>>>48 ubelong x \b, %u bytes/line 1341*3b9cdfa3SAntonio Huete Jimenez# VisualClass; class of the image: 0~StaticGray 1~GrayScale 2~StaticColor 3~PseudoColor 4~TrueColor 5~DirectColor 1342*3b9cdfa3SAntonio Huete Jimenez#>>>>>52 ubelong x \b, %u Class 1343*3b9cdfa3SAntonio Huete Jimenez# RedMask; red RGB mask values used by ZPixmaps like: 0 0xff0000 1344*3b9cdfa3SAntonio Huete Jimenez#>>>>>56 ubelong !0 \b, %#x red 1345*3b9cdfa3SAntonio Huete Jimenez# GreenMask; green mask like: 0 1346*3b9cdfa3SAntonio Huete Jimenez#>>>>>60 ubelong !0 \b, %#x green 1347*3b9cdfa3SAntonio Huete Jimenez# BlueMask; blue mask like: 0 0xff 1348*3b9cdfa3SAntonio Huete Jimenez#>>>>>64 ubelong !0 \b, %#x blue 1349*3b9cdfa3SAntonio Huete Jimenez# BitsPerRgb; Size of each color mask in bits like: 0 1 8 24 1350*3b9cdfa3SAntonio Huete Jimenez#>>>>>68 ubelong x \b, %u bits/RGB 1351*3b9cdfa3SAntonio Huete Jimenez# NumberOfColors; number of colors in image like: 256 4 2 0 (WHAT DOES THIS MEAN?) 1352*3b9cdfa3SAntonio Huete Jimenez>>>>>72 ubelong x \b, %u colors 1353*3b9cdfa3SAntonio Huete Jimenez# ColorMapEntries; number of entries in color map like: 256 16 2 0~no color map 1354*3b9cdfa3SAntonio Huete Jimenez>>>>>76 ubelong x %u entries 1355*3b9cdfa3SAntonio Huete Jimenez# WindowWidth; window width 1356*3b9cdfa3SAntonio Huete Jimenez#>>>>>80 ubelong x \b, %u width 1357*3b9cdfa3SAntonio Huete Jimenez# WindowHeight; window height 1358*3b9cdfa3SAntonio Huete Jimenez#>>>>>84 ubelong x \b, %u height 1359*3b9cdfa3SAntonio Huete Jimenez# WindowX; Window upper left X coordinate like: 0 24 32 80 237 290 422 466 568 (lenna.dmp) 1360*3b9cdfa3SAntonio Huete Jimenez>>>>>88 ubelong !0 \b, x=%d 1361*3b9cdfa3SAntonio Huete Jimenez# WindowY; Window upper left Y coordinate like: 0 8 18 26 60 73 107 (fig41.xwd) 128 1362*3b9cdfa3SAntonio Huete Jimenez>>>>>92 ubelong !0 \b, y=%d 1363*3b9cdfa3SAntonio Huete Jimenez# WindowBorderWidth; Window border width; apparently pixmap_width=WindowWidth+2*WindowBorderWidth 1364*3b9cdfa3SAntonio Huete Jimenez# like: 1 (fig41.xwd) 2 (maze.dmp) 3 (lenna.dmp mandrill.dmp) 1365*3b9cdfa3SAntonio Huete Jimenez>>>>>96 ubelong >0 \b, %u border 1366*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 1367*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/x/xdm-x10.trid.xml 1368*3b9cdfa3SAntonio Huete Jimenez# Note: called "X-Windows Screen Dump (X10)" by TrID and 1369*3b9cdfa3SAntonio Huete Jimenez# "X-Windows Screen Dump" version X10 by DROID via PUID x-fmt/300 1370*3b9cdfa3SAntonio Huete Jimenez# verfied by XnView `nconvert -in xwd -info *` 1371*3b9cdfa3SAntonio Huete Jimenez# HeaderSize is the size of the header in bytes; always 40 for X10 variant 1372*3b9cdfa3SAntonio Huete Jimenez0 ubelong =0x000000028 1373*3b9cdfa3SAntonio Huete Jimenez# FileVersion; always 6 for X10 variant 1374*3b9cdfa3SAntonio Huete Jimenez>4 ubelong =6 1375*3b9cdfa3SAntonio Huete Jimenez# skip DROID x-fmt-300-signature-id-619.xdm by test existing border field 1376*3b9cdfa3SAntonio Huete Jimenez>>36 ubeshort x X-Window screen dump image data, version X10 1377*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-xwindowdump 1378*3b9cdfa3SAntonio Huete Jimenez!:ext xwd 1379*3b9cdfa3SAntonio Huete Jimenez# http://www.nationalarchives.gov.uk/pronom/fmt/401 NO example with xdm suffix FOUND! 1380*3b9cdfa3SAntonio Huete Jimenez#!:ext xwd/xdm 1381*3b9cdfa3SAntonio Huete Jimenez# PixmapWidth; pixmap width like: 127 1280 1382*3b9cdfa3SAntonio Huete Jimenez>>>20 ubelong x \b, %d 1383*3b9cdfa3SAntonio Huete Jimenez# PixmapHeight; pixmap height like: 64 1024 1384*3b9cdfa3SAntonio Huete Jimenez>>>24 ubelong x \bx%d 1385*3b9cdfa3SAntonio Huete Jimenez# DisplayPlanes; number of display planes like: 1 4 8 1386*3b9cdfa3SAntonio Huete Jimenez>>>12 ubelong x \bx%u 1387*3b9cdfa3SAntonio Huete Jimenez# DisplayType; display type like: 1 3 1388*3b9cdfa3SAntonio Huete Jimenez#>>>8 ubelong x \b, type %u 1389*3b9cdfa3SAntonio Huete Jimenez# PixmapFormat; pixmap format like: 1~bitmap with two or more planes (ZPixmap) 0~single-plane bitmap (XYBitmap) 1390*3b9cdfa3SAntonio Huete Jimenez#>>>16 ubelong x \b, %u format 1391*3b9cdfa3SAntonio Huete Jimenez# WindowWidth; window width; probably PixmapWidth=WindowWidth+2*WindowBorderWidth 1392*3b9cdfa3SAntonio Huete Jimenez#>>>28 ubeshort x \b, width %u 1393*3b9cdfa3SAntonio Huete Jimenez# WindowHeight; window height; probably PixmapWidth=PixmapHeight+2*WindowBorderWidth 1394*3b9cdfa3SAntonio Huete Jimenez#>>>30 ubeshort x \b, height %u 1395*3b9cdfa3SAntonio Huete Jimenez# WindowX; window upper left X coordinate like: 0 1396*3b9cdfa3SAntonio Huete Jimenez>>>32 ubeshort !0 \b, x=%d 1397*3b9cdfa3SAntonio Huete Jimenez# WindowY; window upper left Y coordinate like: 0 1398*3b9cdfa3SAntonio Huete Jimenez>>>34 ubeshort !0 \b, y=%d 1399*3b9cdfa3SAntonio Huete Jimenez# WindowBorderWidth; window border width like: 0 1400*3b9cdfa3SAntonio Huete Jimenez>>>36 ubeshort !0 \b, %u border 1401*3b9cdfa3SAntonio Huete Jimenez# WindowNumColors; Number of color entries in window like: 2 16 256 1402*3b9cdfa3SAntonio Huete Jimenez#>>>38 ubeshort x \b, %u colors 1403*3b9cdfa3SAntonio Huete Jimenez# if the image is a PseudoColor image, a color map immediately follows the header. X10COLORMAP[WindowNumColors]; 1404*3b9cdfa3SAntonio Huete Jimenez# EntryNumber; number of the color-map entry like: 0 1405*3b9cdfa3SAntonio Huete Jimenez#>>>40 ubeshort x \b, colors #%u 1406*3b9cdfa3SAntonio Huete Jimenez# Red; red-channel value 1407*3b9cdfa3SAntonio Huete Jimenez#>>>42 ubeshort !0 \b, red %#x 1408*3b9cdfa3SAntonio Huete Jimenez# Green; green-channel value 1409*3b9cdfa3SAntonio Huete Jimenez#>>>44 ubeshort !0 \b, green %#x 1410*3b9cdfa3SAntonio Huete Jimenez# Blue; blue-channel value 1411*3b9cdfa3SAntonio Huete Jimenez#>>>46 ubeshort !0 \b, blue %#x 1412*3b9cdfa3SAntonio Huete Jimenez# 2ND Entry like: 2 1413*3b9cdfa3SAntonio Huete Jimenez#>>>48 ubeshort x \b, colors #%u 1414327e51cbSPeter Avalos 1415327e51cbSPeter Avalos# PDS - Planetary Data System 1416327e51cbSPeter Avalos# These files use Parameter Value Language in the header section. 1417327e51cbSPeter Avalos# Unfortunately, there is no certain magic, but the following 1418327e51cbSPeter Avalos# strings have been found to be most likely. 1419327e51cbSPeter Avalos0 string NJPL1I00 PDS (JPL) image data 1420327e51cbSPeter Avalos2 string NJPL1I PDS (JPL) image data 1421327e51cbSPeter Avalos0 string CCSD3ZF PDS (CCSD) image data 1422327e51cbSPeter Avalos2 string CCSD3Z PDS (CCSD) image data 1423327e51cbSPeter Avalos0 string PDS_ PDS image data 1424327e51cbSPeter Avalos0 string LBLSIZE= PDS (VICAR) image data 1425327e51cbSPeter Avalos 1426327e51cbSPeter Avalos# pM8x: ATARI STAD compressed bitmap format 1427327e51cbSPeter Avalos# 1428327e51cbSPeter Avalos# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001 1429327e51cbSPeter Avalos# p M 8 5/6 xx yy zz data... 1430327e51cbSPeter Avalos# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed. 1431327e51cbSPeter Avalos# bytes either run horizontally (pM85) or vertically (pM86). yy is the 1432327e51cbSPeter Avalos# most frequent byte, xx and zz are runlength escape codes, where xx is 1433327e51cbSPeter Avalos# used for runs of yy. 1434327e51cbSPeter Avalos# 1435327e51cbSPeter Avalos0 string pM85 Atari ST STAD bitmap image data (hor) 1436*3b9cdfa3SAntonio Huete Jimenez>5 ubyte 0x00 (white background) 1437*3b9cdfa3SAntonio Huete Jimenez>5 ubyte 0xFF (black background) 1438327e51cbSPeter Avalos0 string pM86 Atari ST STAD bitmap image data (vert) 1439*3b9cdfa3SAntonio Huete Jimenez>5 ubyte 0x00 (white background) 1440*3b9cdfa3SAntonio Huete Jimenez>5 ubyte 0xFF (black background) 1441327e51cbSPeter Avalos 14426fca56fbSSascha Wildner# From: Alex Myczko <alex@aiei.ch> 14436fca56fbSSascha Wildner# https://www.atarimax.com/jindroush.atari.org/afmtatr.html 1444*3b9cdfa3SAntonio Huete Jimenez0 uleshort 0x0296 Atari ATR image 1445*3b9cdfa3SAntonio Huete Jimenez 1446*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/DEGAS_image 1447*3b9cdfa3SAntonio Huete Jimenez# Reference: https://wiki.multimedia.cx/index.php?title=Degas 1448*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 1449*3b9cdfa3SAntonio Huete Jimenez# http://mark0.net/download/triddefs_xml.7z/defs/b 1450*3b9cdfa3SAntonio Huete Jimenez# bitmap-pi2-degas.trid.xml bitmap-pi3-degas.trid.xml 1451*3b9cdfa3SAntonio Huete Jimenez# bitmap-pc1-degas.trid.xml bitmap-pc2-degas.trid.xml bitmap-pc3-degas.trid.xml 1452*3b9cdfa3SAntonio Huete Jimenez# Note: verified by NetPBM `pi3topbm sigirl1.pi3 | file` 1453*3b9cdfa3SAntonio Huete Jimenez# `deark -m degas -l -d2 ataribak.pi1` 1454*3b9cdfa3SAntonio Huete Jimenez# XnView `nconvert -fullinfo *.p??` 1455*3b9cdfa3SAntonio Huete Jimenez# DEGAS low-res uncompressed bitmap *.pi1 1456*3b9cdfa3SAntonio Huete Jimenez0 beshort 0x0000 1457*3b9cdfa3SAntonio Huete Jimenez# skip some ISO 9660 CD-ROM filesystems like plpbt.iso by test for 4 non black colors in palette entries 1458*3b9cdfa3SAntonio Huete Jimenez>2 quad !0 1459*3b9cdfa3SAntonio Huete Jimenez# skip g3test.g3 by test for unused bits of 2nd color entry 1460*3b9cdfa3SAntonio Huete Jimenez>>4 ubeshort&0xF000 0 1461*3b9cdfa3SAntonio Huete Jimenez#>>>0 beshort x 1ST_VALUE=%x 1462*3b9cdfa3SAntonio Huete Jimenez>>>-0 offset x FILE_SIZE=%lld 1463*3b9cdfa3SAntonio Huete Jimenez# standard DEGAS low-res uncompressed bitmap *.pi1 with file size 32034 1464*3b9cdfa3SAntonio Huete Jimenez>>>-0 offset =32034 VARIANT_STANDARD 1465*3b9cdfa3SAntonio Huete Jimenez#>>>>0 beshort x 1st_VALUE=%x 1466*3b9cdfa3SAntonio Huete Jimenez# like: 8ball.pi1 teddy.pi1 sonic01.pi1 1467*3b9cdfa3SAntonio Huete Jimenez>>>>0 use degas-bitmap 1468*3b9cdfa3SAntonio Huete Jimenez# about 61 DEGAS Elite low-res uncompressed bitmap *.pi1 with file size 32066 1469*3b9cdfa3SAntonio Huete Jimenez>>>-0 offset =32066 VARIANT_ELITE 1470*3b9cdfa3SAntonio Huete Jimenez# like: spider.pi1 pinkgirl.pi1 frog3.pi1 1471*3b9cdfa3SAntonio Huete Jimenez>>>>0 use degas-bitmap 1472*3b9cdfa3SAntonio Huete Jimenez# about 55 DEGAS Elite low-res uncompressed bitmap *.pi1 with file size 32128 1473*3b9cdfa3SAntonio Huete Jimenez>>>-0 offset =32128 VARIANT_3 1474*3b9cdfa3SAntonio Huete Jimenez# like: mountain.pi1 bigspid.pi1 alf33.pi1 1475*3b9cdfa3SAntonio Huete Jimenez>>>>0 use degas-bitmap 1476*3b9cdfa3SAntonio Huete Jimenez# 1 DEGAS Elite low-res uncompressed bitmap *.pi1 with file size 44834 1477*3b9cdfa3SAntonio Huete Jimenez>>>-0 offset =44834 VARIANT_4 1478*3b9cdfa3SAntonio Huete Jimenez# like: kenshin.pi1 1479*3b9cdfa3SAntonio Huete Jimenez>>>>0 use degas-bitmap 1480*3b9cdfa3SAntonio Huete Jimenez# DEGAS mid-res uncompressed bitmap *.pi2 (strength=50) after GEM Images like: 1481*3b9cdfa3SAntonio Huete Jimenez# BEETHVEN.IMG CHURCH.IMG GAMEOVR4.IMG TURKEY.IMG clinton.img 1482*3b9cdfa3SAntonio Huete Jimenez0 beshort 0x0001 1483*3b9cdfa3SAntonio Huete Jimenez#!:strength +0 1484*3b9cdfa3SAntonio Huete Jimenez# skip many control files like gnucash-4.8.setup.exe.aria2 by test for non black in 4 palette entries 1485*3b9cdfa3SAntonio Huete Jimenez>2 quad !0 1486*3b9cdfa3SAntonio Huete Jimenez# skip control file load-v0001.aria2 by test for unused bits of 5th color palette entry 1487*3b9cdfa3SAntonio Huete Jimenez>>10 ubeshort&0xF000 0 1488*3b9cdfa3SAntonio Huete Jimenez# skip many GEM Image data like DANCER.IMG GAMEOVR4.IMG SHIP.IMG by test for unused bits of 8th color palette entry 1489*3b9cdfa3SAntonio Huete Jimenez>>>16 ubeshort&0xF000 0 1490*3b9cdfa3SAntonio Huete Jimenez# skip many GEM Image data like BEETHVEN.IMG CABINETS.IMG MEMO.IMG by test for unused bits of 14th color palette entry 1491*3b9cdfa3SAntonio Huete Jimenez>>>>28 ubeshort&0xF000 0 1492*3b9cdfa3SAntonio Huete Jimenez# skip few GEM Image data like CHURCH.IMG by test for unused bits of 15th color palette entry 1493*3b9cdfa3SAntonio Huete Jimenez>>>>>30 ubeshort&0xF000 0 1494*3b9cdfa3SAntonio Huete Jimenez# skip many GEM Image data like TIGER.IMG TURKEY.IMG XMAS.IMG by test for unused bits of 16th color palette entry 1495*3b9cdfa3SAntonio Huete Jimenez>>>>>>32 ubeshort&0xF000 0 1496*3b9cdfa3SAntonio Huete Jimenez# skip GEM Image data like clinton.img by test for existing bytes at the end 1497*3b9cdfa3SAntonio Huete Jimenez>>>>>>>32026 quad x 1498*3b9cdfa3SAntonio Huete Jimenez>>>>>>>>0 use degas-bitmap 1499*3b9cdfa3SAntonio Huete Jimenez# DEGAS high-res uncompressed bitmap *.pi3 1500*3b9cdfa3SAntonio Huete Jimenez0 beshort 0x0002 1501*3b9cdfa3SAntonio Huete Jimenez# skip Intel ia64 COFF msvcrt.lib by test for unused bits of 1st atari color palette entry 1502*3b9cdfa3SAntonio Huete Jimenez>2 ubeshort&0xF000 0 1503*3b9cdfa3SAntonio Huete Jimenez# skip few Adobe PhotoShop Brushes like Faux-Spitzen.abr by check 1504*3b9cdfa3SAntonio Huete Jimenez# for invalid Adobe PhotoShop Brush UTF16-LE string length 1505*3b9cdfa3SAntonio Huete Jimenez>>19 ubyte =0 1506*3b9cdfa3SAntonio Huete Jimenez# many like: 4th_ofj2.pi3 GEMINI03.PI3 PEOPLE18.PI3 POWERFIX.PI3 abydos.pi3 highres.pi3 sigirl1.pi3 vanna5.pi3 1507*3b9cdfa3SAntonio Huete Jimenez>>>0 use degas-bitmap 1508*3b9cdfa3SAntonio Huete Jimenez# Adobe PhotoShop Brush UTF16-LE string length 15 "Gitter - klein " 8 "Kreis 1 " 1509*3b9cdfa3SAntonio Huete Jimenez>>19 ubyte !0 1510*3b9cdfa3SAntonio Huete Jimenez#>>19 ubyte !0 \b, NOTE LENGTH %u 1511*3b9cdfa3SAntonio Huete Jimenez#>>>21 lestring16 x \b, BRUSH NOTE "%s" 1512*3b9cdfa3SAntonio Huete Jimenez>>>(19.b*2) ubequad x 1513*3b9cdfa3SAntonio Huete Jimenez# maybe last character of Adobe PhotoShop Brush UTF16-LE string and terminating nul char like 1514*3b9cdfa3SAntonio Huete Jimenez# 006e0000 for n in "Faux-Spitzen.abr" 00310000 for 1 in "Verschiedene Spitzen.abr" 1515*3b9cdfa3SAntonio Huete Jimenez# 00000000 "LEREDACT.PI3" 03730773 "TBX_DEMO.PI3" 1516*3b9cdfa3SAntonio Huete Jimenez#>>>>&8 ubelong x \b, LAST CHAR+NIL %8.8x 1517*3b9cdfa3SAntonio Huete Jimenez>>>>&8 ubelong&0xff00ffFF !0 1518*3b9cdfa3SAntonio Huete Jimenez# many DEGAS bitmap like: ARABDEMO.PI3 ELMRSESN.PI3 GEMVIEW.PI3 LEREDACT.PI3 PICCOLO.PI3 REPRO_JR.PI3 ST_TOOLS.PI3 TBX_DEMO.PI3 evgem7.pi3 1519*3b9cdfa3SAntonio Huete Jimenez>>>>>0 use degas-bitmap 1520*3b9cdfa3SAntonio Huete Jimenez# test for last character of Adobe PhotoShop Brush UTF16-LE string and terminating nul char 1521*3b9cdfa3SAntonio Huete Jimenez>>>>&8 ubelong&0xff00ffFF =0 1522*3b9cdfa3SAntonio Huete Jimenez# select last DEGAS bitmaps by invalid last char of brush note like BASICNES.PI3 DB_HELP.PI3 DB_WRITR.PI3 LEREDACT.PI3 1523*3b9cdfa3SAntonio Huete Jimenez>>>>>&-4 ubelong&0x00FF0000 <0x00200000 1524*3b9cdfa3SAntonio Huete Jimenez>>>>>>0 use degas-bitmap 1525*3b9cdfa3SAntonio Huete Jimenez# last character of Adobe PhotoShop Brush UTF16-LE note 1526*3b9cdfa3SAntonio Huete Jimenez#>>>>>&-4 ubelong&0x00FF0000 >0x001F0000 \b, THAT IS ABR 1527*3b9cdfa3SAntonio Huete Jimenez# DEGAS low-res compressed bitmap *.pc1 like: BATTLSHP.PC1 GNUCHESS.PC1 MEDUSABL.PC1 MOONLORD.PC1 WILDROSE.PC1 1528*3b9cdfa3SAntonio Huete Jimenez0 beshort 0x8000 1529*3b9cdfa3SAntonio Huete Jimenez# skip lif files handled via ./lif by test for unused bits of 1st palette entry 1530*3b9cdfa3SAntonio Huete Jimenez>2 ubeshort&0xF000 0 1531*3b9cdfa3SAntonio Huete Jimenez>>0 use degas-bitmap 1532*3b9cdfa3SAntonio Huete Jimenez# DEGAS mid-res compressed bitmap *.pc2 like: abydos.pc2 ARTIS3.PC2 SMTHDRAW.PC2 STAR_2K.PC2 TX2_DEMO.PC2 1533*3b9cdfa3SAntonio Huete Jimenez0 beshort 0x8001 1534*3b9cdfa3SAntonio Huete Jimenez>0 use degas-bitmap 1535*3b9cdfa3SAntonio Huete Jimenez# DEGAS high-res compressed bitmap *.pc3 like: abydos.pc3 COYOTE.PC3 ELEPHANT.PC3 TX2_DEMO.PC3 SMTHDRAW.PC3 1536*3b9cdfa3SAntonio Huete Jimenez0 beshort 0x8002 1537*3b9cdfa3SAntonio Huete Jimenez>0 use degas-bitmap 1538*3b9cdfa3SAntonio Huete Jimenez# display information of Atari DEGAS and DEGAS Elite bitmap images 1539*3b9cdfa3SAntonio Huete Jimenez0 name degas-bitmap 1540*3b9cdfa3SAntonio Huete Jimenez>0 ubyte x Atari DEGAS 1541*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 1542*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-atari-degas 1543*3b9cdfa3SAntonio Huete Jimenez# compressed 1544*3b9cdfa3SAntonio Huete Jimenez>0 ubyte =0x80 Elite compressed 1545*3b9cdfa3SAntonio Huete Jimenez# uncompressed 1546*3b9cdfa3SAntonio Huete Jimenez#>0 ubyte =0x00 uncompressed 1547*3b9cdfa3SAntonio Huete Jimenez#>0 ubyte =0x00 un. 1548*3b9cdfa3SAntonio Huete Jimenez>0 ubyte =0x00 1549*3b9cdfa3SAntonio Huete Jimenez# check for existence of footer for DEGAS Elite images 1550*3b9cdfa3SAntonio Huete Jimenez>>32042 ubequad x Elite 1551*3b9cdfa3SAntonio Huete Jimenez>0 beshort 0x0000 bitmap 1552*3b9cdfa3SAntonio Huete Jimenez!:ext pi1 1553*3b9cdfa3SAntonio Huete Jimenez>0 beshort 0x0001 bitmap 1554*3b9cdfa3SAntonio Huete Jimenez!:ext pi2 1555*3b9cdfa3SAntonio Huete Jimenez>0 beshort 0x0002 bitmap 1556*3b9cdfa3SAntonio Huete Jimenez# no example with SUH extension found 1557*3b9cdfa3SAntonio Huete Jimenez#!:ext pi3/suh 1558*3b9cdfa3SAntonio Huete Jimenez!:ext pi3 1559*3b9cdfa3SAntonio Huete Jimenez>0 beshort 0x8000 bitmap 1560*3b9cdfa3SAntonio Huete Jimenez!:ext pc1 1561*3b9cdfa3SAntonio Huete Jimenez>0 beshort 0x8001 bitmap 1562*3b9cdfa3SAntonio Huete Jimenez!:ext pc2 1563*3b9cdfa3SAntonio Huete Jimenez>0 beshort 0x8002 bitmap 1564*3b9cdfa3SAntonio Huete Jimenez!:ext pc3 1565*3b9cdfa3SAntonio Huete Jimenez# low resolution; 320x200, 16 colors 1566*3b9cdfa3SAntonio Huete Jimenez>1 ubyte =0 320 x 200 x 16 1567*3b9cdfa3SAntonio Huete Jimenez# medium resolution; 640x200, 4 colors 1568*3b9cdfa3SAntonio Huete Jimenez>1 ubyte =1 640 x 200 x 4 1569*3b9cdfa3SAntonio Huete Jimenez# high resolution; 640x400, 2 colors 1570*3b9cdfa3SAntonio Huete Jimenez>1 ubyte =2 640 x 400 x 2 1571*3b9cdfa3SAntonio Huete Jimenez# http://fileformats.archiveteam.org/wiki/Atari_ST_color_palette 1572*3b9cdfa3SAntonio Huete Jimenez# hardware_palette[16]; 9 bit ?????RRR?GGG?BBB; 12 bit ????RRRRGGGGBBBB for Atari STE 1573*3b9cdfa3SAntonio Huete Jimenez# for Atari DEGAS apparently no Spectrum 512 Enhanced 15 bit palette RGB?RRRRGGGGBBBB 1574*3b9cdfa3SAntonio Huete Jimenez# Red Green Blue unused bit ? often 0 but not bilboule.pi1; color_value (examples or numbers) 1575*3b9cdfa3SAntonio Huete Jimenez# 1st color palette entry like: 0777 (61) 0fff (LEREDACT.PI3) 0fcf (devgem7.pi3) 0001 (9) 1576*3b9cdfa3SAntonio Huete Jimenez>2 ubeshort x \b, color palette %4.4x 1577*3b9cdfa3SAntonio Huete Jimenez# 2nd palette entry like: 0000 (32) 0700 (38) 0f00 (LEREDACT.PI3 devgem7.pi3) 1578*3b9cdfa3SAntonio Huete Jimenez>4 ubeshort x %4.4x 1579*3b9cdfa3SAntonio Huete Jimenez# 3rd palette entry 1580*3b9cdfa3SAntonio Huete Jimenez>6 ubeshort x %4.4x 1581*3b9cdfa3SAntonio Huete Jimenez# 4th palette entry like: 0000 (72) 1582*3b9cdfa3SAntonio Huete Jimenez>8 ubeshort x %4.4x 1583*3b9cdfa3SAntonio Huete Jimenez# 5th palette entry 1584*3b9cdfa3SAntonio Huete Jimenez>10 ubeshort x %4.4x 1585*3b9cdfa3SAntonio Huete Jimenez>2 ubeshort x ... 1586*3b9cdfa3SAntonio Huete Jimenez# 6th palette entry 1587*3b9cdfa3SAntonio Huete Jimenez#>12 ubeshort x %4.4x 1588*3b9cdfa3SAntonio Huete Jimenez# 7th palette entry like: 0000 (16) 0001 (ELMRSESN.PI3 elmrsesn.pi3) 0070 (51) 00f0 (BASICNES.PI3 LEREDACT.PI3) 00f8 (devgem7.pi3) 1589*3b9cdfa3SAntonio Huete Jimenez#>14 ubeshort x %4.4x 1590*3b9cdfa3SAntonio Huete Jimenez# 8th palette entry 1591*3b9cdfa3SAntonio Huete Jimenez#>16 ubeshort x %4.4x 1592*3b9cdfa3SAntonio Huete Jimenez# 9 palette entry 1593*3b9cdfa3SAntonio Huete Jimenez#>18 ubeshort x %4.4x 1594*3b9cdfa3SAntonio Huete Jimenez# 10 palette entry 1595*3b9cdfa3SAntonio Huete Jimenez#>20 ubeshort x %4.4x 1596*3b9cdfa3SAntonio Huete Jimenez# 11 palette entry 1597*3b9cdfa3SAntonio Huete Jimenez#>22 ubeshort x %4.4x 1598*3b9cdfa3SAntonio Huete Jimenez# 12 palette entry 1599*3b9cdfa3SAntonio Huete Jimenez#>24 ubeshort x %4.4x 1600*3b9cdfa3SAntonio Huete Jimenez# 13 palette entry 1601*3b9cdfa3SAntonio Huete Jimenez#>26 ubeshort x %4.4x 1602*3b9cdfa3SAntonio Huete Jimenez# 14th palette entry 1603*3b9cdfa3SAntonio Huete Jimenez#>28 ubeshort x %4.4x 1604*3b9cdfa3SAntonio Huete Jimenez# 15th palette entry 1605*3b9cdfa3SAntonio Huete Jimenez#>30 ubeshort x %4.4x 1606*3b9cdfa3SAntonio Huete Jimenez# 16th palette entry 1607*3b9cdfa3SAntonio Huete Jimenez#>32 ubeshort x %4.4x 1608*3b9cdfa3SAntonio Huete Jimenez# data[16000] for uncompressed images; pixel data 1609*3b9cdfa3SAntonio Huete Jimenez#>34 ubequad x \b, DATA %#16.16llx... 1610*3b9cdfa3SAntonio Huete Jimenez# footer for Elite variant images 1611*3b9cdfa3SAntonio Huete Jimenez# https://www.fileformat.info/format/atari/egff.htm 1612*3b9cdfa3SAntonio Huete Jimenez# https://pulkomandy.tk/projects/GrafX2/wiki/Develop/FileFormats/Atari 1613*3b9cdfa3SAntonio Huete Jimenez# left_color_animation[4]; like: 0000000000000000 0000000100020003 fffafff000000030 (bigspid.pi1) 1614*3b9cdfa3SAntonio Huete Jimenez#>32034 ubequad !0 \b, color animations %16.16llx (left) 1615*3b9cdfa3SAntonio Huete Jimenez# right_color_animation[4]; like: 0000000000000000 0000000100020003 1616*3b9cdfa3SAntonio Huete Jimenez#>>32042 ubequad !0 %16.16llx (right) 1617*3b9cdfa3SAntonio Huete Jimenez# channel_direction[4]; 0~left 1~none 2~right like: 0001000100010001 0002000000010001 (cycle2.pi1) 1618*3b9cdfa3SAntonio Huete Jimenez# sometimes unexpected like: feaafc0000000000 (bigspid.pi1) 1619*3b9cdfa3SAntonio Huete Jimenez#>32050 ubequad !0 \b, channel directions %16.16llx 1620*3b9cdfa3SAntonio Huete Jimenez# channel_delay[4]; 128 - channel delay, timebase 1/60 s 1621*3b9cdfa3SAntonio Huete Jimenez#>32058 ubequad !0 \b, channel delays %16.16llx 1622327e51cbSPeter Avalos 1623614728caSSascha Wildner# From: Joerg Jenderek 1624614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/ImageLab/PrintTechnic 1625614728caSSascha Wildner# Reference: http://mark0.net/download/triddefs_xml.7z/defs/b/bitmap-b_w.trid.xml 1626614728caSSascha Wildner# Note: called "ImageLab bitmap" by TrID 1627614728caSSascha Wildner# verfied by XnView `nconvert -fullinfo "MAEDCHEN.B&W"` 1628614728caSSascha Wildner0 string B&W256 ImageLab bitmap 1629614728caSSascha Wildner!:mime image/x-ilab 1630614728caSSascha Wildner# https://www.xnview.com/de/image_formats/ 1631614728caSSascha Wildner# GRR: add char & inside parse_ext in ../../src/apprentice.c to avoid in file version 5.40 error like: 1632614728caSSascha Wildner# Magdir\images, 1090: Warning: EXTENSION type ` b_w/b&w' has bad char '&' 1633614728caSSascha Wildner!:ext b_w/b&w 1634614728caSSascha Wildner# Width 1635614728caSSascha Wildner>6 ubeshort x \b, %u 1636614728caSSascha Wildner# Height 1637614728caSSascha Wildner>8 ubeshort x x %u 1638614728caSSascha Wildner 1639327e51cbSPeter Avalos# XXX: 1640327e51cbSPeter Avalos# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other 1641327e51cbSPeter Avalos# magic. 1642327e51cbSPeter Avalos# SGI RICE image file <mpruett@sgi.com> 1643*3b9cdfa3SAntonio Huete Jimenez#0 ubeshort 0x5249 RICE image 1644*3b9cdfa3SAntonio Huete Jimenez#>2 ubeshort x v%d 1645*3b9cdfa3SAntonio Huete Jimenez#>4 ubeshort x (%d x 1646*3b9cdfa3SAntonio Huete Jimenez#>6 ubeshort x %d) 1647*3b9cdfa3SAntonio Huete Jimenez#>8 ubeshort 0 8 bit 1648*3b9cdfa3SAntonio Huete Jimenez#>8 ubeshort 1 10 bit 1649*3b9cdfa3SAntonio Huete Jimenez#>8 ubeshort 2 12 bit 1650*3b9cdfa3SAntonio Huete Jimenez#>8 ubeshort 3 13 bit 1651*3b9cdfa3SAntonio Huete Jimenez#>10 ubeshort 0 4:2:2 1652*3b9cdfa3SAntonio Huete Jimenez#>10 ubeshort 1 4:2:2:4 1653*3b9cdfa3SAntonio Huete Jimenez#>10 ubeshort 2 4:4:4 1654*3b9cdfa3SAntonio Huete Jimenez#>10 ubeshort 3 4:4:4:4 1655*3b9cdfa3SAntonio Huete Jimenez#>12 ubeshort 1 RGB 1656*3b9cdfa3SAntonio Huete Jimenez#>12 ubeshort 2 CCIR601 1657*3b9cdfa3SAntonio Huete Jimenez#>12 ubeshort 3 RP175 1658*3b9cdfa3SAntonio Huete Jimenez#>12 ubeshort 4 YUV 1659327e51cbSPeter Avalos 1660327e51cbSPeter Avalos# PCX image files 1661327e51cbSPeter Avalos# From: Dan Fandrich <dan@coneharvesters.com> 16626fca56fbSSascha Wildner# updated by Joerg Jenderek at Feb 2013 by https://de.wikipedia.org/wiki/PCX 16636fca56fbSSascha Wildner# https://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt 1664e8af9738SPeter Avalos# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000 1665e8af9738SPeter Avalos# 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 1666e8af9738SPeter Avalos0 ubelong&0xffF8fe00 0x0a000000 1667e8af9738SPeter Avalos# for PCX bit depth > 0 1668e8af9738SPeter Avalos>3 ubyte >0 1669e8af9738SPeter Avalos# test for valid versions 1670e8af9738SPeter Avalos>>1 ubyte <6 1671e8af9738SPeter Avalos>>>1 ubyte !1 PCX 1672e8af9738SPeter Avalos!:mime image/x-pcx 1673e8af9738SPeter Avalos#!:mime image/pcx 1674e8af9738SPeter Avalos>>>>1 ubyte 0 ver. 2.5 image data 1675e8af9738SPeter Avalos>>>>1 ubyte 2 ver. 2.8 image data, with palette 1676e8af9738SPeter Avalos>>>>1 ubyte 3 ver. 2.8 image data, without palette 1677e8af9738SPeter Avalos>>>>1 ubyte 4 for Windows image data 1678e8af9738SPeter Avalos>>>>1 ubyte 5 ver. 3.0 image data 167982c5fa3eSPeter Avalos>>>>4 uleshort x bounding box [%d, 1680e8af9738SPeter Avalos>>>>6 uleshort x %d] - 1681e8af9738SPeter Avalos>>>>8 uleshort x [%d, 1682e8af9738SPeter Avalos>>>>10 uleshort x %d], 1683e8af9738SPeter Avalos>>>>65 ubyte >1 %d planes each of 1684e8af9738SPeter Avalos>>>>3 ubyte x %d-bit 1685*3b9cdfa3SAntonio Huete Jimenez>>>>68 ubyte 1 colour, 1686*3b9cdfa3SAntonio Huete Jimenez>>>>68 ubyte 2 grayscale, 1687e8af9738SPeter Avalos# this should not happen 1688e8af9738SPeter Avalos>>>>68 default x image, 1689*3b9cdfa3SAntonio Huete Jimenez>>>>12 uleshort >0 %d x 1690e8af9738SPeter Avalos>>>>>14 uleshort x %d dpi, 1691*3b9cdfa3SAntonio Huete Jimenez>>>>2 ubyte 0 uncompressed 1692*3b9cdfa3SAntonio Huete Jimenez>>>>2 ubyte 1 RLE compressed 1693327e51cbSPeter Avalos 1694327e51cbSPeter Avalos# Adobe Photoshop 1695f72f8299SJan Lentfer# From: Asbjoern Sloth Toennesen <asbjorn@lila.io> 1696614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/PSD 1697614728caSSascha Wildner# Reference: https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/ 1698614728caSSascha Wildner# Note: verfied by XnView `nconvert -fullinfo *.psd *.psb *.pdd` 1699614728caSSascha Wildner# and ImageMagick `identify -verbose *.pdd` 1700614728caSSascha Wildner0 string 8BPS 1701614728caSSascha Wildner# skip DROID x-fmt-92-signature-id-277.psd by checking valid width 1702*3b9cdfa3SAntonio Huete Jimenez>18 ubelong >0 Adobe Photoshop 170379343712SPeter Avalos!:mime image/vnd.adobe.photoshop 1704614728caSSascha Wildner!:apple ????8BPS 1705614728caSSascha Wildner# version: always equal to 1, but 2 for PSB 1706614728caSSascha Wildner>>4 beshort 1 1707614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/PhotoDeluxe 1708614728caSSascha Wildner# EXTRAS/PHOTOS/DEMOPIX/ORIGINAL.PDD 1709614728caSSascha Wildner>>>34 search/0xC0d7 PHUT Image (PhotoDeluxe) 1710614728caSSascha Wildner!:ext pdd 1711614728caSSascha Wildner>>>34 default x Image 1712970935fdSSascha Wildner!:ext psd 1713614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/PSB 1714614728caSSascha Wildner>>4 beshort 2 Image (PSB) 1715614728caSSascha Wildner!:ext psb 1716614728caSSascha Wildner# width in pixels: 1-30000 1-300000 for PSB 1717614728caSSascha Wildner>>18 belong x \b, %d x 1718614728caSSascha Wildner>>14 belong x %d, 1719614728caSSascha Wildner# The color mode; 0~Bitmap 1~Grayscale 2~Indexed 3~RGB 4~CMYK 7~Multichannel 9~Duotone 9~Lab 1720614728caSSascha Wildner>>24 beshort 0 bitmap 1721614728caSSascha Wildner>>24 beshort 1 grayscale 1722614728caSSascha Wildner# the number of channels; range is 1 to 56 1723614728caSSascha Wildner>>>12 beshort 2 with alpha 1724614728caSSascha Wildner>>24 beshort 2 indexed 1725614728caSSascha Wildner>>24 beshort 3 RGB 1726614728caSSascha Wildner>>>12 beshort 4 \bA 1727614728caSSascha Wildner>>24 beshort 4 CMYK 1728614728caSSascha Wildner>>>12 beshort 5 \bA 1729614728caSSascha Wildner>>24 beshort 7 multichannel 1730614728caSSascha Wildner>>24 beshort 8 duotone 1731614728caSSascha Wildner>>24 beshort 9 lab 1732614728caSSascha Wildner>>12 beshort > 1 1733614728caSSascha Wildner>>>12 beshort x \b, %dx 1734614728caSSascha Wildner>>12 beshort 1 \b, 1735614728caSSascha Wildner>>22 beshort x %d-bit channel 1736614728caSSascha Wildner>>12 beshort > 1 \bs 1737614728caSSascha Wildner# 6 reserved bytes; must be zero, but spaces inside ImageMagick input.psd 1738614728caSSascha Wildner# https://download.imagemagick.org/ImageMagick/download/ImageMagick-7.0.11-11.zip 1739614728caSSascha Wildner# ImageMagick-7.0.11-11\PerlMagick\t\input.psd 1740614728caSSascha Wildner>>6 bequad&0xFFffFFffFFff0000 !0 \b, at offset 6 1741614728caSSascha Wildner>>>6 belong x 0x%8.8x 1742614728caSSascha Wildner>>>6 beshort x \b%4.4x 1743327e51cbSPeter Avalos 1744327e51cbSPeter Avalos# XV thumbnail indicator (ThMO) 1745970935fdSSascha Wildner# URL: https://en.wikipedia.org/wiki/Xv_(software) 1746970935fdSSascha Wildner# Reference: http://fileformats.archiveteam.org/wiki/XV_thumbnail 1747970935fdSSascha Wildner# Update: Joerg Jenderek 1748327e51cbSPeter Avalos0 string P7\ 332 XV thumbnail image data 1749970935fdSSascha Wildner#0 string P7\ 332 XV "thumbnail file" (icon) data 1750970935fdSSascha Wildner!:mime image/x-xv-thumbnail 1751970935fdSSascha Wildner# thumbnail .xvpic/foo.bar for graphic foo.bar 1752970935fdSSascha Wildner!:ext p7/gif/tif/xpm/jpg 1753327e51cbSPeter Avalos 1754327e51cbSPeter Avalos# NITF is defined by United States MIL-STD-2500A 1755327e51cbSPeter Avalos0 string NITF National Imagery Transmission Format 1756327e51cbSPeter Avalos>25 string >\0 dated %.14s 1757327e51cbSPeter Avalos 1758327e51cbSPeter Avalos# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff) 1759c30bd091SSascha Wildner# Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de> 1760c30bd091SSascha Wildner# Update: Joerg Jenderek 1761c30bd091SSascha Wildner# See http://fileformats.archiveteam.org/wiki/GEM_Raster 1762c30bd091SSascha Wildner# For variations, also see: 17636fca56fbSSascha Wildner# https://www.seasip.info/Gem/ff_img.html (Ventura) 1764c30bd091SSascha Wildner# http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT) 1765c30bd091SSascha Wildner# http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT) 1766c30bd091SSascha Wildner# http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG) 1767c30bd091SSascha Wildner0 beshort 0x0001 1768c30bd091SSascha Wildner# header_size 1769c30bd091SSascha Wildner>2 beshort 0x0008 1770c30bd091SSascha Wildner>>0 use gem_info 1771c30bd091SSascha Wildner>2 beshort 0x0009 1772c30bd091SSascha Wildner>>0 use gem_info 1773c30bd091SSascha Wildner# no example for NOSIG 1774c30bd091SSascha Wildner>2 beshort 24 1775c30bd091SSascha Wildner>>0 use gem_info 1776c30bd091SSascha Wildner# no example for HYPERPAINT 1777c30bd091SSascha Wildner>2 beshort 25 1778c30bd091SSascha Wildner>>0 use gem_info 1779c30bd091SSascha Wildner16 string XIMG\0 1780c30bd091SSascha Wildner>0 use gem_info 1781c30bd091SSascha Wildner# no example 1782c30bd091SSascha Wildner16 string STTT\0\x10 1783c30bd091SSascha Wildner>0 use gem_info 1784c30bd091SSascha Wildner# no example or description 1785c30bd091SSascha Wildner16 string TIMG\0 1786c30bd091SSascha Wildner>0 use gem_info 1787c30bd091SSascha Wildner 1788c30bd091SSascha Wildner0 name gem_info 1789c30bd091SSascha Wildner# version is 2 for some XIMG and 1 for all others 1790*3b9cdfa3SAntonio Huete Jimenez>0 ubeshort <0x0003 GEM 17916fca56fbSSascha Wildner# https://www.snowstone.org.uk/riscos/mimeman/mimemap.txt 1792c30bd091SSascha Wildner!:mime image/x-gem 1793c30bd091SSascha Wildner# header_size 24 25 27 59 779 words for colored bitmaps 1794*3b9cdfa3SAntonio Huete Jimenez>>2 ubeshort >9 1795c30bd091SSascha Wildner>>>16 string STTT\0\x10 STTT 1796c30bd091SSascha Wildner>>>16 string TIMG\0 TIMG 1797c30bd091SSascha Wildner# HYPERPAINT or NOSIG variant 1798c30bd091SSascha Wildner>>>16 string \0\x80 1799*3b9cdfa3SAntonio Huete Jimenez>>>>2 ubeshort =24 NOSIG 1800*3b9cdfa3SAntonio Huete Jimenez>>>>2 ubeshort !24 HYPERPAINT 1801c30bd091SSascha Wildner# NOSIG or XIMG variant 1802c30bd091SSascha Wildner>>>16 default x 1803c30bd091SSascha Wildner>>>>16 string !XIMG\0 NOSIG 1804c30bd091SSascha Wildner>>16 string =XIMG\0 XIMG Image data 1805c30bd091SSascha Wildner!:ext img/ximg 1806c30bd091SSascha Wildner# to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type 1807c30bd091SSascha Wildner>>16 string !XIMG\0 Image data 1808c30bd091SSascha Wildner!:ext img 1809c30bd091SSascha Wildner# header_size is 9 for Ventura files and 8 for other GEM Paint files 1810*3b9cdfa3SAntonio Huete Jimenez>>2 ubeshort 9 (Ventura) 1811*3b9cdfa3SAntonio Huete Jimenez#>>2 ubeshort 8 (Paint) 1812*3b9cdfa3SAntonio Huete Jimenez>>12 ubeshort x %d x 1813*3b9cdfa3SAntonio Huete Jimenez>>14 ubeshort x %d, 1814c30bd091SSascha Wildner# 1 4 8 1815*3b9cdfa3SAntonio Huete Jimenez>>4 ubeshort x %d planes, 1816c30bd091SSascha Wildner# in tenths of a millimetre 1817*3b9cdfa3SAntonio Huete Jimenez>>8 ubeshort x %d x 1818*3b9cdfa3SAntonio Huete Jimenez>>10 ubeshort x %d pixelsize 1819c30bd091SSascha Wildner# pattern_size 1-8. 2 for GEM Paint 1820*3b9cdfa3SAntonio Huete Jimenez>>6 ubeshort !2 \b, pattern size %d 1821327e51cbSPeter Avalos 1822327e51cbSPeter Avalos# GEM Metafile (Wolfram Kleff) 1823*3b9cdfa3SAntonio Huete Jimenez0 ulelong 0x0018FFFF GEM Metafile data 1824*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x version %d 1825327e51cbSPeter Avalos 1826327e51cbSPeter Avalos# 1827327e51cbSPeter Avalos# SMJPEG. A custom Motion JPEG format used by Loki Entertainment 1828327e51cbSPeter Avalos# Software Torbjorn Andersson <d91tan@Update.UU.SE>. 1829327e51cbSPeter Avalos# 1830327e51cbSPeter Avalos0 string \0\nSMJPEG SMJPEG 1831*3b9cdfa3SAntonio Huete Jimenez>8 ubelong x %d.x data 1832327e51cbSPeter Avalos# According to the specification you could find any number of _TXT 1833327e51cbSPeter Avalos# headers here, but I can't think of any way of handling that. None of 1834327e51cbSPeter Avalos# the SMJPEG files I tried it on used this feature. Even if such a 1835327e51cbSPeter Avalos# file is encountered the output should still be reasonable. 1836327e51cbSPeter Avalos>16 string _SND \b, 1837*3b9cdfa3SAntonio Huete Jimenez>>24 ubeshort >0 %d Hz 1838*3b9cdfa3SAntonio Huete Jimenez>>26 ubyte 8 8-bit 1839*3b9cdfa3SAntonio Huete Jimenez>>26 ubyte 16 16-bit 1840327e51cbSPeter Avalos>>28 string NONE uncompressed 1841327e51cbSPeter Avalos# >>28 string APCM ADPCM compressed 1842*3b9cdfa3SAntonio Huete Jimenez>>27 ubyte 1 mono 1843*3b9cdfa3SAntonio Huete Jimenez>>28 ubyte 2 stereo 1844327e51cbSPeter Avalos# Help! Isn't there any way to avoid writing this part twice? 1845*3b9cdfa3SAntonio Huete Jimenez# Yes, use a name/use 1846327e51cbSPeter Avalos>>32 string _VID \b, 1847327e51cbSPeter Avalos# >>>48 string JFIF JPEG 1848*3b9cdfa3SAntonio Huete Jimenez>>>40 ubelong >0 %d frames 1849*3b9cdfa3SAntonio Huete Jimenez>>>44 ubeshort >0 (%d x 1850*3b9cdfa3SAntonio Huete Jimenez>>>46 ubeshort >0 %d) 1851327e51cbSPeter Avalos>16 string _VID \b, 1852327e51cbSPeter Avalos# >>32 string JFIF JPEG 1853*3b9cdfa3SAntonio Huete Jimenez>>24 ubelong >0 %d frames 1854*3b9cdfa3SAntonio Huete Jimenez>>28 ubeshort >0 (%d x 1855*3b9cdfa3SAntonio Huete Jimenez>>30 ubeshort >0 %d) 1856327e51cbSPeter Avalos 1857327e51cbSPeter Avalos0 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File 1858327e51cbSPeter Avalos 1859327e51cbSPeter Avalos# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?) 1860327e51cbSPeter Avalos0 string KiSS KISS/GS 1861*3b9cdfa3SAntonio Huete Jimenez>4 ubyte 16 color 1862*3b9cdfa3SAntonio Huete Jimenez>>5 ubyte x %d bit 1863*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort x %d colors 1864*3b9cdfa3SAntonio Huete Jimenez>>10 uleshort x %d groups 1865*3b9cdfa3SAntonio Huete Jimenez>4 ubyte 32 cell 1866*3b9cdfa3SAntonio Huete Jimenez>>5 ubyte x %d bit 1867*3b9cdfa3SAntonio Huete Jimenez>>8 uleshort x %d x 1868*3b9cdfa3SAntonio Huete Jimenez>>10 uleshort x %d 1869*3b9cdfa3SAntonio Huete Jimenez>>12 uleshort x +%d 1870*3b9cdfa3SAntonio Huete Jimenez>>14 uleshort x +%d 1871327e51cbSPeter Avalos 1872327e51cbSPeter Avalos# Webshots (www.webshots.com), by John Harrison 1873327e51cbSPeter Avalos0 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file 1874327e51cbSPeter Avalos 1875327e51cbSPeter Avalos# Hercules DASD image files 1876*3b9cdfa3SAntonio Huete Jimenez# From Jan Jaeger <jj@septa.nl> and Jay Maynard <jaymaynard@gmail.com> 1877327e51cbSPeter Avalos0 string CKD_P370 Hercules CKD DASD image file 1878*3b9cdfa3SAntonio Huete Jimenez>8 lelong x \b, %d heads per cylinder 1879*3b9cdfa3SAntonio Huete Jimenez>12 lelong x \b, track size %d bytes 1880327e51cbSPeter Avalos>16 byte x \b, device type 33%2.2X 1881327e51cbSPeter Avalos 1882327e51cbSPeter Avalos0 string CKD_C370 Hercules compressed CKD DASD image file 1883*3b9cdfa3SAntonio Huete Jimenez>8 lelong x \b, %d heads per cylinder 1884*3b9cdfa3SAntonio Huete Jimenez>12 lelong x \b, track size %d bytes 1885327e51cbSPeter Avalos>16 byte x \b, device type 33%2.2X 1886*3b9cdfa3SAntonio Huete Jimenez>552 lelong x \b, %d total cylinders 1887*3b9cdfa3SAntonio Huete Jimenez>>557 byte 0 \b, no compression 1888*3b9cdfa3SAntonio Huete Jimenez>>557 byte 1 \b, ZLIB compression 1889*3b9cdfa3SAntonio Huete Jimenez>>557 byte 2 \b, BZ2 compression 1890327e51cbSPeter Avalos 1891327e51cbSPeter Avalos0 string CKD_S370 Hercules CKD DASD shadow file 1892*3b9cdfa3SAntonio Huete Jimenez>8 lelong x \b, %d heads per cylinder 1893*3b9cdfa3SAntonio Huete Jimenez>12 lelong x \b, track size %d bytes 1894*3b9cdfa3SAntonio Huete Jimenez>16 byte x \b, device type 33%2.2X 1895*3b9cdfa3SAntonio Huete Jimenez 1896*3b9cdfa3SAntonio Huete Jimenez0 string CKD_P064 Hercules CKD64 DASD image file 1897*3b9cdfa3SAntonio Huete Jimenez>8 lelong x \b, %d heads per cylinder 1898*3b9cdfa3SAntonio Huete Jimenez>12 lelong x \b, track size %d bytes 1899*3b9cdfa3SAntonio Huete Jimenez>16 byte x \b, device type 33%2.2X 1900*3b9cdfa3SAntonio Huete Jimenez 1901*3b9cdfa3SAntonio Huete Jimenez0 string CKD_C064 Hercules compressed CKD64 DASD image file 1902*3b9cdfa3SAntonio Huete Jimenez>8 lelong x \b, %d heads per cylinder 1903*3b9cdfa3SAntonio Huete Jimenez>12 lelong x \b, track size %d bytes 1904*3b9cdfa3SAntonio Huete Jimenez>16 byte x \b, device type 33%2.2X 1905*3b9cdfa3SAntonio Huete Jimenez>524 lelong x \b, %d total cylinders 1906*3b9cdfa3SAntonio Huete Jimenez>>585 byte 0 \b, no compression 1907*3b9cdfa3SAntonio Huete Jimenez>>585 byte 1 \b, ZLIB compression 1908*3b9cdfa3SAntonio Huete Jimenez>>585 byte 2 \b, BZ2 compression 1909*3b9cdfa3SAntonio Huete Jimenez 1910*3b9cdfa3SAntonio Huete Jimenez0 string CKD_S064 Hercules CKD64 DASD shadow file 1911*3b9cdfa3SAntonio Huete Jimenez>8 lelong x \b, %d heads per cylinder 1912*3b9cdfa3SAntonio Huete Jimenez>12 lelong x \b, track size %d bytes 1913327e51cbSPeter Avalos>16 byte x \b, device type 33%2.2X 1914327e51cbSPeter Avalos 191579343712SPeter Avalos# Squeak images and programs - etoffi@softhome.net 1916327e51cbSPeter Avalos0 string \146\031\0\0 Squeak image data 191779343712SPeter Avalos0 search/1 'From\040Squeak Squeak program text 1918327e51cbSPeter Avalos 1919327e51cbSPeter Avalos# partimage: file(1) magic for PartImage files (experimental, incomplete) 1920327e51cbSPeter Avalos# Author: Hans-Joachim Baader <hjb@pro-linux.de> 1921327e51cbSPeter Avalos0 string PaRtImAgE-VoLuMe PartImage 1922327e51cbSPeter Avalos>0x0020 string 0.6.1 file version %s 1923*3b9cdfa3SAntonio Huete Jimenez>>0x0060 ulelong >-1 volume %d 1924327e51cbSPeter Avalos#>>0x0064 8 byte identifier 1925327e51cbSPeter Avalos#>>0x007c reserved 1926327e51cbSPeter Avalos>>0x0200 string >\0 type %s 1927327e51cbSPeter Avalos>>0x1400 string >\0 device %s, 1928327e51cbSPeter Avalos>>0x1600 string >\0 original filename %s, 1929327e51cbSPeter Avalos# Some fields omitted 1930*3b9cdfa3SAntonio Huete Jimenez>>0x2744 ulelong 0 not compressed 1931*3b9cdfa3SAntonio Huete Jimenez>>0x2744 ulelong 1 gzip compressed 1932*3b9cdfa3SAntonio Huete Jimenez>>0x2744 ulelong 2 bzip2 compressed 1933*3b9cdfa3SAntonio Huete Jimenez>>0x2744 ulelong >2 compressed with unknown algorithm 1934327e51cbSPeter Avalos>0x0020 string >0.6.1 file version %s 1935327e51cbSPeter Avalos>0x0020 string <0.6.1 file version %s 1936327e51cbSPeter Avalos 1937327e51cbSPeter Avalos# DCX is multi-page PCX, using a simple header of up to 1024 1938327e51cbSPeter Avalos# offsets for the respective PCX components. 1939327e51cbSPeter Avalos# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> 1940614728caSSascha Wildner# Update: Joerg Jenderek 1941614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/DCX 1942*3b9cdfa3SAntonio Huete Jimenez0 ulelong 987654321 DCX multi-page 1943614728caSSascha Wildner# http://www.nationalarchives.gov.uk/pronom/x-fmt/348 1944614728caSSascha Wildner!:mime image/x-dcx 1945614728caSSascha Wildner!:ext dcx 1946614728caSSascha Wildner# The first file offset usually starts at file offset 0x1004 1947614728caSSascha Wildner# print 1 space after 0x100? offset and then handles PCX images by ./images 1948*3b9cdfa3SAntonio Huete Jimenez>4 ulelong x \b, at %#x 1949614728caSSascha Wildner>(4.l) indirect x 1950614728caSSascha Wildner# possible 2nd PCX image 1951*3b9cdfa3SAntonio Huete Jimenez#>8 ulelong !0 \b, at %#x 1952614728caSSascha Wildner#>>(8.l) indirect x 1953614728caSSascha Wildner# possible 3rd PCX image 1954*3b9cdfa3SAntonio Huete Jimenez#>12 ulelong !0 \b, at %#x 1955614728caSSascha Wildner#>>(12.l) indirect x 1956327e51cbSPeter Avalos 1957327e51cbSPeter Avalos# Simon Walton <simonw@matteworld.com> 1958327e51cbSPeter Avalos# Kodak Cineon format for scanned negatives 1959327e51cbSPeter Avalos# http://www.kodak.com/US/en/motion/support/dlad/ 1960*3b9cdfa3SAntonio Huete Jimenez0 ulelong 0xd75f2a80 Cineon image data 1961*3b9cdfa3SAntonio Huete Jimenez>200 ubelong >0 \b, %d x 1962*3b9cdfa3SAntonio Huete Jimenez>204 ubelong >0 %d 1963327e51cbSPeter Avalos 1964327e51cbSPeter Avalos 1965327e51cbSPeter Avalos# Bio-Rad .PIC is an image format used by microscope control systems 1966327e51cbSPeter Avalos# and related image processing software used by biologists. 1967327e51cbSPeter Avalos# From: Vebjorn Ljosa <vebjorn@ljosa.com> 1968e4d4ce0cSPeter Avalos# BOOL values are two-byte integers; use them to rule out false positives. 19696fca56fbSSascha Wildner# https://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt 19706fca56fbSSascha Wildner# Samples: https://www.loci.wisc.edu/software/sample-data 1971*3b9cdfa3SAntonio Huete Jimenez14 uleshort <2 1972*3b9cdfa3SAntonio Huete Jimenez>62 uleshort <2 1973*3b9cdfa3SAntonio Huete Jimenez>>54 uleshort 12345 Bio-Rad .PIC Image File 1974*3b9cdfa3SAntonio Huete Jimenez>>>0 uleshort >0 %d x 1975*3b9cdfa3SAntonio Huete Jimenez>>>2 uleshort >0 %d, 1976*3b9cdfa3SAntonio Huete Jimenez>>>4 uleshort =1 1 image in file 1977*3b9cdfa3SAntonio Huete Jimenez>>>4 uleshort >1 %d images in file 1978327e51cbSPeter Avalos 1979327e51cbSPeter Avalos# From Jan "Yenya" Kasprzak <kas@fi.muni.cz> 1980327e51cbSPeter Avalos# The description of *.mrw format can be found at 1981327e51cbSPeter Avalos# http://www.dalibor.cz/minolta/raw_file_format.htm 1982327e51cbSPeter Avalos0 string \000MRM Minolta Dimage camera raw image data 1983327e51cbSPeter Avalos 198479343712SPeter Avalos# Summary: DjVu image / document 198579343712SPeter Avalos# Extension: .djvu 198679343712SPeter Avalos# Reference: http://djvu.org/docs/DjVu3Spec.djvu 198779343712SPeter Avalos# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr> 198879343712SPeter Avalos# Modified by (1): Abel Cheung <abelcheung@gmail.com> 198979343712SPeter Avalos0 string AT&TFORM 199079343712SPeter Avalos>12 string DJVM DjVu multiple page document 1991f72f8299SJan Lentfer!:mime image/vnd.djvu 199279343712SPeter Avalos>12 string DJVU DjVu image or single page document 1993f72f8299SJan Lentfer!:mime image/vnd.djvu 199479343712SPeter Avalos>12 string DJVI DjVu shared document 1995f72f8299SJan Lentfer!:mime image/vnd.djvu 199679343712SPeter Avalos>12 string THUM DjVu page thumbnails 1997f72f8299SJan Lentfer!:mime image/vnd.djvu 1998327e51cbSPeter Avalos 1999e8af9738SPeter Avalos# Originally by Marc Espie 2000e8af9738SPeter Avalos# Modified by Robert Minsk <robertminsk at yahoo.com> 20016fca56fbSSascha Wildner# https://www.openexr.com/openexrfilelayout.pdf 2002*3b9cdfa3SAntonio Huete Jimenez0 ulelong 20000630 OpenEXR image data, 2003e8af9738SPeter Avalos!:mime image/x-exr 2004*3b9cdfa3SAntonio Huete Jimenez>4 ulelong&0x000000ff x version %d, 2005*3b9cdfa3SAntonio Huete Jimenez>4 ulelong ^0x00000200 storage: scanline 2006*3b9cdfa3SAntonio Huete Jimenez>4 ulelong &0x00000200 storage: tiled 2007e8af9738SPeter Avalos>8 search/0x1000 compression\0 \b, compression: 2008*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 0 none 2009*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 1 rle 2010*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 2 zips 2011*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 3 zip 2012*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 4 piz 2013*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 5 pxr24 2014*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 6 b44 2015*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 7 b44a 2016*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 8 dwaa 2017*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte 9 dwab 2018*3b9cdfa3SAntonio Huete Jimenez>>&16 ubyte >9 unknown 2019e8af9738SPeter Avalos>8 search/0x1000 dataWindow\0 \b, dataWindow: 2020*3b9cdfa3SAntonio Huete Jimenez>>&10 ulelong x (%d 2021*3b9cdfa3SAntonio Huete Jimenez>>&14 ulelong x %d)- 2022*3b9cdfa3SAntonio Huete Jimenez>>&18 ulelong x \b(%d 2023*3b9cdfa3SAntonio Huete Jimenez>>&22 ulelong x %d) 2024e8af9738SPeter Avalos>8 search/0x1000 displayWindow\0 \b, displayWindow: 2025*3b9cdfa3SAntonio Huete Jimenez>>&10 ulelong x (%d 2026*3b9cdfa3SAntonio Huete Jimenez>>&14 ulelong x %d)- 2027*3b9cdfa3SAntonio Huete Jimenez>>&18 ulelong x \b(%d 2028*3b9cdfa3SAntonio Huete Jimenez>>&22 ulelong x %d) 2029e8af9738SPeter Avalos>8 search/0x1000 lineOrder\0 \b, lineOrder: 2030*3b9cdfa3SAntonio Huete Jimenez>>&14 ubyte 0 increasing y 2031*3b9cdfa3SAntonio Huete Jimenez>>&14 ubyte 1 decreasing y 2032*3b9cdfa3SAntonio Huete Jimenez>>&14 ubyte 2 random y 2033*3b9cdfa3SAntonio Huete Jimenez>>&14 ubyte >2 unknown 2034327e51cbSPeter Avalos 2035e8af9738SPeter Avalos# SMPTE Digital Picture Exchange Format, SMPTE DPX 2036e8af9738SPeter Avalos# 2037e8af9738SPeter Avalos# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital 2038e8af9738SPeter Avalos# Moving-Picture Exchange (DPX), v1.0, 18 February 1994 2039e8af9738SPeter Avalos# Robert Minsk <robertminsk at yahoo.com> 20406fca56fbSSascha Wildner# Modified by Harry Mallon <hjmallon at gmail.com> 2041e8af9738SPeter Avalos0 string SDPX DPX image data, big-endian, 2042e8af9738SPeter Avalos!:mime image/x-dpx 20436fca56fbSSascha Wildner>0 use dpx_info 20446fca56fbSSascha Wildner0 string XPDS DPX image data, little-endian, 20456fca56fbSSascha Wildner!:mime image/x-dpx 20466fca56fbSSascha Wildner>0 use \^dpx_info 20476fca56fbSSascha Wildner 20486fca56fbSSascha Wildner0 name dpx_info 2049*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort <4 2050*3b9cdfa3SAntonio Huete Jimenez>>772 ubelong x %dx 2051*3b9cdfa3SAntonio Huete Jimenez>>776 ubelong x \b%d, 2052*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort >3 2053*3b9cdfa3SAntonio Huete Jimenez>>776 ubelong x %dx 2054*3b9cdfa3SAntonio Huete Jimenez>>772 ubelong x \b%d, 2055*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 0 left to right/top to bottom 2056*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 1 right to left/top to bottom 2057*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 2 left to right/bottom to top 2058*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 3 right to left/bottom to top 2059*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 4 top to bottom/left to right 2060*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 5 top to bottom/right to left 2061*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 6 bottom to top/left to right 2062*3b9cdfa3SAntonio Huete Jimenez>768 ubeshort 7 bottom to top/right to left 2063327e51cbSPeter Avalos 2064327e51cbSPeter Avalos# From: Tom Hilinski <tom.hilinski@comcast.net> 2065*3b9cdfa3SAntonio Huete Jimenez# Update: Joerg Jenderek 2066*3b9cdfa3SAntonio Huete Jimenez# URL: https://en.wikipedia.org/wiki/NetCDF 2067*3b9cdfa3SAntonio Huete Jimenez# http://fileformats.archiveteam.org/wiki/NetCDF 2068*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/n/netcdf.trid.xml 2069*3b9cdfa3SAntonio Huete Jimenez# https://www.loc.gov/preservation/digital/formats/fdd/fdd000330.shtml 2070*3b9cdfa3SAntonio Huete Jimenez# Note: called "NetCDF Network Common Data Form" by TrID and 2071*3b9cdfa3SAntonio Huete Jimenez# "netCDF-3 Classic" by DROID via PUID fmt/282 2072*3b9cdfa3SAntonio Huete Jimenez# https://www.unidata.ucar.edu/packages/netcdf/ 2073*3b9cdfa3SAntonio Huete Jimenez0 string CDF\001 2074*3b9cdfa3SAntonio Huete Jimenez# skip DROID fmt-282-signature-id-298.nc by test for more content bytes 2075*3b9cdfa3SAntonio Huete Jimenez>3 uleshort >0 NetCDF Data Format data 2076*3b9cdfa3SAntonio Huete Jimenez#!:mime application/netcdf 2077*3b9cdfa3SAntonio Huete Jimenez# https://reposcope.com/mimetype/application/x-netcdf 2078*3b9cdfa3SAntonio Huete Jimenez!:mime application/x-netcdf 2079*3b9cdfa3SAntonio Huete Jimenez!:ext nc 2080*3b9cdfa3SAntonio Huete Jimenez# https://fileinfo.com/extension/cdf 2081*3b9cdfa3SAntonio Huete Jimenez# https://www.file-extensions.org/cdf-file-extension-unidata-network-common-data-form 2082*3b9cdfa3SAntonio Huete Jimenez# in 1994 changed from CDF to NC file extension avoid a clash with other file formats 2083*3b9cdfa3SAntonio Huete Jimenez#!:ext nc/cdf 2084c990e5baSDaniel Fojt# 64-bit offset netcdf Classic https://www.unidata.ucar.edu/software/netcdf/docs/file_format_specifications 2085*3b9cdfa3SAntonio Huete Jimenez# Note: called "netCDF-3 64-bit" by DROID via PUID fmt/283 2086*3b9cdfa3SAntonio Huete Jimenez0 string CDF\002 2087*3b9cdfa3SAntonio Huete Jimenez# skip DROID fmt-283-signature-id-299.nc by test for more content bytes 2088*3b9cdfa3SAntonio Huete Jimenez>3 uleshort >0 NetCDF Data Format data (64-bit offset) 2089*3b9cdfa3SAntonio Huete Jimenez#!:mime application/netcdf 2090*3b9cdfa3SAntonio Huete Jimenez!:mime application/x-netcdf 2091*3b9cdfa3SAntonio Huete Jimenez!:ext nc 2092327e51cbSPeter Avalos 2093614728caSSascha Wildner# From: Michael Liu 2094614728caSSascha Wildner# https://en.wikipedia.org/wiki/Common_Data_Format 2095*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0xCDF30001 Common Data Format (Version 3 or later) data 2096614728caSSascha Wildner!:mime application/x-cdf 2097614728caSSascha Wildner 2098*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0xCDF26002 Common Data Format (Version 2.6 or 2.7) data 2099614728caSSascha Wildner!:mime application/x-cdf 2100614728caSSascha Wildner 2101*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0x0000FFFF Common Data Format (Version 2.5 or earlier) data 2102614728caSSascha Wildner!:mime application/x-cdf 2103614728caSSascha Wildner 2104327e51cbSPeter Avalos# Hierarchical Data Format, used to facilitate scientific data exchange 2105327e51cbSPeter Avalos# specifications at http://hdf.ncsa.uiuc.edu/ 2106614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/HDF 2107614728caSSascha Wildner# https://en.wikipedia.org/wiki/Hierarchical_Data_Format 2108614728caSSascha Wildner# Reference: https://portal.hdfgroup.org/download/attachments/52627880/HDF5_File_Format_Specification_Version-3.0.pdf 2109*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0x0e031301 Hierarchical Data Format (version 4) data 211079343712SPeter Avalos!:mime application/x-hdf 2111614728caSSascha Wildner!:ext hdf/hdf4/h4 2112e4d4ce0cSPeter Avalos0 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) data 2113614728caSSascha Wildner#!:mime application/x-hdf 2114614728caSSascha Wildner!:mime application/x-hdf5 2115614728caSSascha Wildner!:ext h5/hdf5/hdf/he5 2116614728caSSascha Wildner512 string \211HDF\r\n\032\n 2117614728caSSascha Wildner# skip Matlab v5 mat-file testhdf5_7.4_GLNX86.mat handled by ./mathematica 2118614728caSSascha Wildner>0 string !MATLAB Hierarchical Data Format (version 5) with 512 bytes user block 2119614728caSSascha Wildner#!:mime application/x-hdf 2120614728caSSascha Wildner!:mime application/x-hdf5 2121614728caSSascha Wildner!:ext h5/hdf5/hdf/he5 2122e8af9738SPeter Avalos1024 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 1k user block 2123614728caSSascha Wildner#!:mime application/x-hdf 2124614728caSSascha Wildner!:mime application/x-hdf5 2125614728caSSascha Wildner!:ext h5/hdf5/hdf/he5 2126e8af9738SPeter Avalos2048 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 2k user block 2127614728caSSascha Wildner#!:mime application/x-hdf 2128614728caSSascha Wildner!:mime application/x-hdf5 2129614728caSSascha Wildner!:ext h5/hdf5/hdf/he5 2130e8af9738SPeter Avalos4096 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 4k user block 2131614728caSSascha Wildner#!:mime application/x-hdf 2132614728caSSascha Wildner!:mime application/x-hdf5 2133614728caSSascha Wildner!:ext h5/hdf5/hdf/he5 2134327e51cbSPeter Avalos 2135327e51cbSPeter Avalos# From: Tobias Burnus <burnus@net-b.de> 2136327e51cbSPeter Avalos# Xara (for a while: Corel Xara) is a graphic package, see 213779343712SPeter Avalos# http://www.xara.com/ for Windows and as GPL application for Linux 2138327e51cbSPeter Avalos0 string XARA\243\243 Xara graphics file 213979343712SPeter Avalos 2140970935fdSSascha Wildner# From: Joerg Jenderek 2141970935fdSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/Corel_Gallery 2142970935fdSSascha Wildner# Reference: http://mark0.net/download/triddefs_xml.7z/defs/b/bmf-corel.trid.xml 2143970935fdSSascha Wildner# Note: called "Corel Binary Material Format" by TrID and 2144970935fdSSascha Wildner# "Corel Flow" by XnView 2145970935fdSSascha Wildner0 string @CorelBMF\n\rCorel\040Corporation Corel GALLERY Clipart 2146970935fdSSascha Wildner!:mime image/x-corel-bmf 2147970935fdSSascha Wildner!:ext bmf 2148970935fdSSascha Wildner 21496fca56fbSSascha Wildner# https://www.cartesianinc.com/Tech/ 2150970935fdSSascha Wildner# Reference: http://fileformats.archiveteam.org/wiki/Cartesian_Perceptual_Compression 215179343712SPeter Avalos0 string CPC\262 Cartesian Perceptual Compression image 215279343712SPeter Avalos!:mime image/x-cpi 2153970935fdSSascha Wildner!:ext cpi/cpc 215479343712SPeter Avalos 215579343712SPeter Avalos# From Albert Cahalan <acahalan@gmail.com> 215679343712SPeter Avalos# puredigital used it for the CVS disposable camcorder 215779343712SPeter Avalos#8 lelong 4 ZBM bitmap image data 2158*3b9cdfa3SAntonio Huete Jimenez#>4 uleshort x %u x 2159*3b9cdfa3SAntonio Huete Jimenez#>6 uleshort x %u 216079343712SPeter Avalos 216179343712SPeter Avalos# From Albert Cahalan <acahalan@gmail.com> 216279343712SPeter Avalos# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons 216379343712SPeter Avalos0 string C565 OLPC firmware icon image data 2164*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x %u x 2165*3b9cdfa3SAntonio Huete Jimenez>6 uleshort x %u 216679343712SPeter Avalos 216779343712SPeter Avalos# Applied Images - Image files from Cytovision 216879343712SPeter Avalos# Gustavo Junior Alves <gjalves@gjalves.com.br> 216979343712SPeter Avalos0 string \xce\xda\xde\xfa Cytovision Metaphases file 217079343712SPeter Avalos0 string \xed\xad\xef\xac Cytovision Karyotype file 217179343712SPeter Avalos0 string \x0b\x00\x03\x00 Cytovision FISH Probe file 217279343712SPeter Avalos0 string \xed\xfe\xda\xbe Cytovision FLEX file 217379343712SPeter Avalos0 string \xed\xab\xed\xfe Cytovision FLEX file 217479343712SPeter Avalos0 string \xad\xfd\xea\xad Cytovision RATS file 217579343712SPeter Avalos 217679343712SPeter Avalos# Wavelet Scalar Quantization format used in gray-scale fingerprint images 217779343712SPeter Avalos# From Tano M Fotang <mfotang@quanteq.com> 217879343712SPeter Avalos0 string \xff\xa0\xff\xa8\x00 Wavelet Scalar Quantization image data 217979343712SPeter Avalos 2180e8af9738SPeter Avalos# Type: PCO B16 image files 2181e8af9738SPeter Avalos# URL: http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf 2182e8af9738SPeter Avalos# From: Florian Philipp <florian.philipp@binarywings.net> 2183e8af9738SPeter Avalos# Extension: .b16 2184e8af9738SPeter Avalos# Description: Pixel image format produced by PCO Camware, typically used 2185e8af9738SPeter Avalos# together with PCO cameras. 2186e8af9738SPeter Avalos# Note: Different versions exist for e.g. 8 bit and 16 bit images. 2187e8af9738SPeter Avalos# Documentation is incomplete. 2188e8af9738SPeter Avalos0 string/b PCO- PCO B16 image data 2189*3b9cdfa3SAntonio Huete Jimenez>12 ulelong x \b, %dx 2190*3b9cdfa3SAntonio Huete Jimenez>16 ulelong x \b%d 2191*3b9cdfa3SAntonio Huete Jimenez>20 ulelong 0 \b, short header 2192*3b9cdfa3SAntonio Huete Jimenez>20 ulelong -1 \b, extended header 2193*3b9cdfa3SAntonio Huete Jimenez>>24 ulelong 0 \b, grayscale 2194*3b9cdfa3SAntonio Huete Jimenez>>>36 ulelong 0 linear LUT 2195*3b9cdfa3SAntonio Huete Jimenez>>>36 ulelong 1 logarithmic LUT 2196*3b9cdfa3SAntonio Huete Jimenez>>>28 ulelong x [%d 2197*3b9cdfa3SAntonio Huete Jimenez>>>32 ulelong x \b,%d] 2198*3b9cdfa3SAntonio Huete Jimenez>>24 ulelong 1 \b, color 2199*3b9cdfa3SAntonio Huete Jimenez>>>64 ulelong 0 linear LUT 2200*3b9cdfa3SAntonio Huete Jimenez>>>64 ulelong 1 logarithmic LUT 2201*3b9cdfa3SAntonio Huete Jimenez>>>40 ulelong x r[%d 2202*3b9cdfa3SAntonio Huete Jimenez>>>44 ulelong x \b,%d] 2203*3b9cdfa3SAntonio Huete Jimenez>>>48 ulelong x g[%d 2204*3b9cdfa3SAntonio Huete Jimenez>>>52 ulelong x \b,%d] 2205*3b9cdfa3SAntonio Huete Jimenez>>>56 ulelong x b[%d 2206*3b9cdfa3SAntonio Huete Jimenez>>>60 ulelong x \b,%d] 2207e8af9738SPeter Avalos 2208e8af9738SPeter Avalos# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches 2209e8af9738SPeter Avalos# From: Markus Heidelberg <markus.heidelberg at web.de> 2210e8af9738SPeter Avalos0 string/t [BitmapInfo2] Polar Monitor Bitmap text 2211e8af9738SPeter Avalos!:mime image/x-polar-monitor-bitmap 2212e4d4ce0cSPeter Avalos 221382c5fa3eSPeter Avalos# From: Rick Richardson <rickrich@gmail.com> 2214c30bd091SSascha Wildner# updated by: Joerg Jenderek 2215c30bd091SSascha Wildner# URL: http://techmods.net/nuvi/ 2216e4d4ce0cSPeter Avalos0 string GARMIN\ BITMAP\ 01 Garmin Bitmap file 2217c30bd091SSascha Wildner# extension is also used for 2218c30bd091SSascha Wildner# Sony SRF raw image (image/x-sony-srf) 2219c30bd091SSascha Wildner# SRF map 22206fca56fbSSascha Wildner# Terragen Surface Map (https://www.planetside.co.uk/terragen) 22216fca56fbSSascha Wildner# FileLocator Pro search criteria file (https://www.mythicsoft.com/filelocatorpro) 2222c30bd091SSascha Wildner!:ext srf 2223c30bd091SSascha Wildner#!:mime image/x-garmin-srf 2224c30bd091SSascha Wildner# version 1.00,2.00,2.10,2.40,2.50 2225c30bd091SSascha Wildner>0x2f string >0 \b, version %4.4s 2226c30bd091SSascha Wildner# width (2880,2881,3240) 2227c30bd091SSascha Wildner>0x55 uleshort >0 \b, %dx 2228c30bd091SSascha Wildner# height (80,90) 2229c30bd091SSascha Wildner>>0x53 uleshort x \b%d 2230e4d4ce0cSPeter Avalos 2231*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 2232*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/Imageiio/imaginfo_(Ulead) 2233*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/pe3.trid.xml 2234*3b9cdfa3SAntonio Huete Jimenez# Note: called "Ulead Imageiio/Imaginfo thumbnail" by TrID 2235*3b9cdfa3SAntonio Huete Jimenez0 string IIO1$ Ulead Photo Explorer 3 2236*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 2237*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-ulead-pe3 2238*3b9cdfa3SAntonio Huete Jimenez# IMAGEIIO.PE3 2239*3b9cdfa3SAntonio Huete Jimenez!:ext pe3 2240*3b9cdfa3SAntonio Huete Jimenez# look for DOS/Windows drive letter 2241*3b9cdfa3SAntonio Huete Jimenez>5 search/192/s :\\ 2242*3b9cdfa3SAntonio Huete Jimenez# directory or full name of corresponding imaginfo.pe3 like: "T:\SAMPLES\TEXTURES\SKY_SNOW\IIOE371.TMP "S:\PI3\PIMPACT3\PROGRAMS\PATTERNS\imaginfo.pe3" 2243*3b9cdfa3SAntonio Huete Jimenez>>&-1 string x "%s" 2244*3b9cdfa3SAntonio Huete Jimenez# look for DOS/Windows network path if no drive letter part 2245*3b9cdfa3SAntonio Huete Jimenez>5 default x 2246*3b9cdfa3SAntonio Huete Jimenez>>5 search/192/s \x5c\x5c 2247*3b9cdfa3SAntonio Huete Jimenez# full name of corresponding imaginfo.pe3 like: "\\Lionking\upi\SAMPLES\IMAGES\ANIMALS\imaginfo.pe3" 2248*3b9cdfa3SAntonio Huete Jimenez>>>&0 string x "%s" 2249e4d4ce0cSPeter Avalos# Type: Ulead Photo Explorer5 (.pe5) 2250*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/Imageiio/imaginfo_(Ulead) 2251*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/pe4.trid.xml 2252e4d4ce0cSPeter Avalos# From: Simon Horman <horms@debian.org> 2253*3b9cdfa3SAntonio Huete Jimenez# Update: Joerg Jenderek 2254*3b9cdfa3SAntonio Huete Jimenez# Note: some called "Ulead Imageiio/Imaginfo thumbnail" by TrID 2255*3b9cdfa3SAntonio Huete Jimenez# and used in various Ulead applications 2256*3b9cdfa3SAntonio Huete Jimenez0 string IIO2H Ulead Photo Explorer 4 or 5 2257*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 2258*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-ulead-pe4 2259*3b9cdfa3SAntonio Huete Jimenez# IMAGEIIO.PE4 2260*3b9cdfa3SAntonio Huete Jimenez!:ext pe4/pe5 2261*3b9cdfa3SAntonio Huete Jimenez# look in most samples for JPEG signature like: SAMPLES/IMAGES/SCENES/IMAGINFO.PE4 2262*3b9cdfa3SAntonio Huete Jimenez>0x4c2 search/0xE02/s JFIF with JPEG image data 2263*3b9cdfa3SAntonio Huete Jimenez>>&-6 use jpeg 2264*3b9cdfa3SAntonio Huete Jimenez# near the end list of image names like: Img0001.pcd 1116012L.JPG NCARD4.TPL 2265*3b9cdfa3SAntonio Huete Jimenez# 2266*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/pe3-imaginfo.trid.xml 2267*3b9cdfa3SAntonio Huete Jimenez11 string \001\0\0\0\0 2268*3b9cdfa3SAntonio Huete Jimenez# check for version 3 part 2269*3b9cdfa3SAntonio Huete Jimenez>19 string \0\001\0\003\0 2270*3b9cdfa3SAntonio Huete Jimenez>>0 use ulead-imaginfo 2271*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 2272*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/pe4-imaginfo.trid.xml 2273*3b9cdfa3SAntonio Huete Jimenez11 string \001\0\0\0\0 2274*3b9cdfa3SAntonio Huete Jimenez# check for version 4 part 2275*3b9cdfa3SAntonio Huete Jimenez>19 string \0\0\0\004\0 2276*3b9cdfa3SAntonio Huete Jimenez>>0 use ulead-imaginfo 2277*3b9cdfa3SAntonio Huete Jimenez# display information about Ulead Imaginfo thumbnail (version, directory, image extension) 2278*3b9cdfa3SAntonio Huete Jimenez0 name ulead-imaginfo 2279*3b9cdfa3SAntonio Huete Jimenez>22 ubyte x Ulead Imaginfo thumbnail 2280*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 2281*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-ulead-imaginfo 2282*3b9cdfa3SAntonio Huete Jimenez>22 ubyte =3 \b, version 3 2283*3b9cdfa3SAntonio Huete Jimenez# IMAGINFO.PE3 2284*3b9cdfa3SAntonio Huete Jimenez!:ext pe3 2285*3b9cdfa3SAntonio Huete Jimenez>22 ubyte =4 \b, version 4 2286*3b9cdfa3SAntonio Huete Jimenez# IMAGINFO.PE4 2287*3b9cdfa3SAntonio Huete Jimenez!:ext pe4 2288*3b9cdfa3SAntonio Huete Jimenez# MAYBE ALSO VERSION 5 ? 2289*3b9cdfa3SAntonio Huete Jimenez#>22 ubyte =5 \b, version 5 2290*3b9cdfa3SAntonio Huete Jimenez#!:ext pe5 2291*3b9cdfa3SAntonio Huete Jimenez>22 ubyte x 2292*3b9cdfa3SAntonio Huete Jimenez# look for DOS/Windows driver letter 2293*3b9cdfa3SAntonio Huete Jimenez>>4 search/192/s :\x5c 2294*3b9cdfa3SAntonio Huete Jimenez# skip f:\Programme\iPhoto Plus 4\Template\Business Cards\IMAGINFO.PE4 2295*3b9cdfa3SAntonio Huete Jimenez# by looking for driver letter in range A-Z 2296*3b9cdfa3SAntonio Huete Jimenez>>>&-1 ubyte >0x40 2297*3b9cdfa3SAntonio Huete Jimenez# directory path like: "E:\iPE\CDSample\Images\Scenes" "D:\XmasCard\Samples" "C:\TEMP\PLANTS" 2298*3b9cdfa3SAntonio Huete Jimenez>>>>&-5 pstring/l >0 \b, "%s" 2299*3b9cdfa3SAntonio Huete Jimenez# look for DOS/Windows network path if no valid drive letter part 2300*3b9cdfa3SAntonio Huete Jimenez>>>&-1 default x 2301*3b9cdfa3SAntonio Huete Jimenez>>>>4 search/192/s \x5c\x5c 2302*3b9cdfa3SAntonio Huete Jimenez# directory path like: "\\FSX\SYS\OPPS\IPE.ENG\TEMPLATE\BUSINESS" "\\Lionking\upi\SAMPLES\IMAGES\ANIMALS" 2303*3b9cdfa3SAntonio Huete Jimenez>>>>>&-4 pstring/l >0 \b, "%s" 2304*3b9cdfa3SAntonio Huete Jimenez# look for DOS/Windows network path if no drive letter part 2305*3b9cdfa3SAntonio Huete Jimenez>>4 default x 2306*3b9cdfa3SAntonio Huete Jimenez>>>4 search/192/s \x5c\x5c 2307*3b9cdfa3SAntonio Huete Jimenez# directory path like: "\\FSX\SYS\opps\ipe.eng\samples" "\\DANIEL\IPE_CD\IPE.ITA" 2308*3b9cdfa3SAntonio Huete Jimenez>>>>&-4 pstring/l >0 \b, "%s" 2309*3b9cdfa3SAntonio Huete Jimenez# look for point character inside image names 2310*3b9cdfa3SAntonio Huete Jimenez>56 search/38/s . 2311*3b9cdfa3SAntonio Huete Jimenez# image name extension like: bmp jpg pcd tpl 2312*3b9cdfa3SAntonio Huete Jimenez>>&1 string x with %-.3s images 2313*3b9cdfa3SAntonio Huete Jimenez# Summary: Ulead Pattern image (Corel Corporation) 2314*3b9cdfa3SAntonio Huete Jimenez# URL: https://en.wikipedia.org/wiki/Ulead_Systems 2315*3b9cdfa3SAntonio Huete Jimenez# https://www.file-extensions.org/pst-file-extension-ulead-pattern-image-format 2316*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/pst-ulead.trid.xml 2317*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 2318*3b9cdfa3SAntonio Huete Jimenez# Note: used also by CorelDraw Essentials 3 version 13.0.0.800 2319*3b9cdfa3SAntonio Huete Jimenez# there seems to exist other versions 2320*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0xFFFF0100 2321*3b9cdfa3SAntonio Huete Jimenez>8 search/21 PresetInfo Ulead pattern image 2322*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 2323*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-ulead-pst 2324*3b9cdfa3SAntonio Huete Jimenez!:ext pst 2325*3b9cdfa3SAntonio Huete Jimenez# string length like: 16 18 19 21 24 2326*3b9cdfa3SAntonio Huete Jimenez#>>4 uleshort x n=%u 2327*3b9cdfa3SAntonio Huete Jimenez# like: BlendPresetInfo DropShadowPresetInfo FileNewPresetInfo VectorExtrudePresetInfo EnvelopePresetInfo ContourPresetInfo DistortionPresetInfo 2328*3b9cdfa3SAntonio Huete Jimenez>>4 pstring/h x "%s" 2329e4d4ce0cSPeter Avalos 2330e4d4ce0cSPeter Avalos# Type: X11 cursor 2331e4d4ce0cSPeter Avalos# URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup 2332e4d4ce0cSPeter Avalos# From: Mathias Brodala <info@noctus.net> 2333e4d4ce0cSPeter Avalos0 string Xcur X11 cursor 2334e4d4ce0cSPeter Avalos 2335e4d4ce0cSPeter Avalos# Type: Olympus ORF raw images. 23366fca56fbSSascha Wildner# URL: https://libopenraw.freedesktop.org/wiki/Olympus_ORF 2337e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com> 2338e4d4ce0cSPeter Avalos0 string MMOR Olympus ORF raw image data, big-endian 2339e4d4ce0cSPeter Avalos!:mime image/x-olympus-orf 2340e4d4ce0cSPeter Avalos0 string IIRO Olympus ORF raw image data, little-endian 2341e4d4ce0cSPeter Avalos!:mime image/x-olympus-orf 2342e4d4ce0cSPeter Avalos0 string IIRS Olympus ORF raw image data, little-endian 2343e4d4ce0cSPeter Avalos!:mime image/x-olympus-orf 2344e4d4ce0cSPeter Avalos 2345e4d4ce0cSPeter Avalos# Type: files used in modern AVCHD camcoders to store clip information 2346e4d4ce0cSPeter Avalos# Extension: .cpi 2347e4d4ce0cSPeter Avalos# From: Alexander Danilov <alexander.a.danilov@gmail.com> 2348e4d4ce0cSPeter Avalos0 string HDMV0100 AVCHD Clip Information 2349e4d4ce0cSPeter Avalos 2350e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com> 2351e4d4ce0cSPeter Avalos# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/ 2352e4d4ce0cSPeter Avalos# Radiance HDR; usually has .pic or .hdr extension. 2353e4d4ce0cSPeter Avalos0 string #?RADIANCE\n Radiance HDR image data 2354e4d4ce0cSPeter Avalos#!mime image/vnd.radiance 2355e4d4ce0cSPeter Avalos 2356e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com> 23576fca56fbSSascha Wildner# URL: https://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf 2358e4d4ce0cSPeter Avalos# Used by the pfstools packages. The regex matches for the image size could 2359e4d4ce0cSPeter Avalos# probably use some work. The MIME type is made up; if there's one in 2360e4d4ce0cSPeter Avalos# actual common use, it should replace the one below. 2361e4d4ce0cSPeter Avalos0 string PFS1\x0a PFS HDR image data 2362e4d4ce0cSPeter Avalos#!mime image/x-pfs 2363e4d4ce0cSPeter Avalos>1 regex [0-9]*\ \b, %s 2364e4d4ce0cSPeter Avalos>>1 regex \ [0-9]{4} \bx%s 2365e4d4ce0cSPeter Avalos 2366e4d4ce0cSPeter Avalos# Type: Foveon X3F 23676fca56fbSSascha Wildner# URL: https://www.photofo.com/downloads/x3f-raw-format.pdf 2368e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com> 2369e4d4ce0cSPeter Avalos# Note that the MIME type isn't defined anywhere that I can find; if 2370e4d4ce0cSPeter Avalos# there's a canonical type for this format, it should replace this one. 2371e4d4ce0cSPeter Avalos0 string FOVb Foveon X3F raw image data 2372e4d4ce0cSPeter Avalos!:mime image/x-x3f 2373*3b9cdfa3SAntonio Huete Jimenez>6 uleshort x \b, version %d. 2374*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x \b%d 2375*3b9cdfa3SAntonio Huete Jimenez>28 ulelong x \b, %dx 2376*3b9cdfa3SAntonio Huete Jimenez>32 ulelong x \b%d 2377e4d4ce0cSPeter Avalos 2378e4d4ce0cSPeter Avalos# Paint.NET file 2379e4d4ce0cSPeter Avalos# From Adam Buchbinder <adam.buchbinder@gmail.com> 2380e4d4ce0cSPeter Avalos0 string PDN3 Paint.NET image data 2381e4d4ce0cSPeter Avalos!:mime image/x-paintnet 2382e4d4ce0cSPeter Avalos 2383e4d4ce0cSPeter Avalos# Not really an image. 2384e4d4ce0cSPeter Avalos# From: "Tano M. Fotang" <mfotang@quanteq.com> 2385e4d4ce0cSPeter Avalos0 string \x46\x4d\x52\x00 ISO/IEC 19794-2 Format Minutiae Record (FMR) 2386e8af9738SPeter Avalos 23876fca56fbSSascha Wildner# doc: https://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip 23886fca56fbSSascha Wildner# example: https://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip 2389*3b9cdfa3SAntonio Huete Jimenez90 ubequad 0x574D50484F544F00 JPEG-XR Image 2390*3b9cdfa3SAntonio Huete Jimenez>98 ubyte&0x08 =0x08 \b, hard tiling 2391*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x80 =0x80 \b, tiling present 2392*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x40 =0x40 \b, codestream present 2393*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 x \b, spatial xform= 2394*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x00 \bTL 2395*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x08 \bBL 2396*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x10 \bTR 2397*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x18 \bBR 2398*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x20 \bBT 2399*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x28 \bRB 2400*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x30 \bLT 2401*3b9cdfa3SAntonio Huete Jimenez>99 ubyte&0x38 0x38 \bLB 2402*3b9cdfa3SAntonio Huete Jimenez>100 ubyte&0x80 =0x80 \b, short header 2403*3b9cdfa3SAntonio Huete Jimenez>>102 ubeshort+1 x \b, %d 2404*3b9cdfa3SAntonio Huete Jimenez>>104 ubeshort+1 x \bx%d 2405*3b9cdfa3SAntonio Huete Jimenez>100 ubyte&0x80 =0x00 \b, long header 2406*3b9cdfa3SAntonio Huete Jimenez>>102 ubelong+1 x \b, %x 2407*3b9cdfa3SAntonio Huete Jimenez>>106 ubelong+1 x \bx%x 2408*3b9cdfa3SAntonio Huete Jimenez>101 ubeshort&0xf x \b, bitdepth= 2409*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x0 \b1-WHITE=1 2410*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x1 \b8 2411*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x2 \b16 2412*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x3 \b16-SIGNED 2413*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x4 \b16-FLOAT 2414*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x5 \b(reserved 5) 2415*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x6 \b32-SIGNED 2416*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x7 \b32-FLOAT 2417*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x8 \b5 2418*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0x9 \b10 2419*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0xa \b5-6-5 2420*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0xb \b(reserved %d) 2421*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0xc \b(reserved %d) 2422*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0xd \b(reserved %d) 2423*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0xe \b(reserved %d) 2424*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf 0xf \b1-BLACK=1 2425*3b9cdfa3SAntonio Huete Jimenez>101 ubeshort&0xf0 x \b, colorfmt= 2426*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x00 \bYONLY 2427*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x10 \bYUV240 2428*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x20 \bYWV422 2429*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x30 \bYWV444 2430*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x40 \bCMYK 2431*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x50 \bCMYKDIRECT 2432*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x60 \bNCOMPONENT 2433*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x70 \bRGB 2434*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 0x80 \bRGBE 2435*3b9cdfa3SAntonio Huete Jimenez>>101 ubeshort&0xf0 >0x80 \b(reserved %#x) 243682c5fa3eSPeter Avalos 243782c5fa3eSPeter Avalos# From: Johan van der Knijff <johan.vanderknijff@kb.nl> 243882c5fa3eSPeter Avalos# 243982c5fa3eSPeter Avalos# BPG (Better Portable Graphics) format 24406fca56fbSSascha Wildner# https://bellard.org/bpg/ 244182c5fa3eSPeter Avalos# http://fileformats.archiveteam.org/wiki/BPG 244282c5fa3eSPeter Avalos# 244382c5fa3eSPeter Avalos0 string \x42\x50\x47\xFB BPG (Better Portable Graphics) 244482c5fa3eSPeter Avalos!:mime image/bpg 2445c30bd091SSascha Wildner 2446c30bd091SSascha Wildner# From: Joerg Jenderek 2447c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format 2448c30bd091SSascha Wildner0 string icns Mac OS X icon 2449c30bd091SSascha Wildner!:mime image/x-icns 2450c30bd091SSascha Wildner!:apple ????icns 2451c30bd091SSascha Wildner!:ext icns 2452c30bd091SSascha Wildner>4 ubelong >0 2453c30bd091SSascha Wildner# file size 2454c30bd091SSascha Wildner>>4 ubelong x \b, %d bytes 2455c30bd091SSascha Wildner# icon type 2456c30bd091SSascha Wildner>>8 string x \b, "%4.4s" type 2457c30bd091SSascha Wildner 2458c30bd091SSascha Wildner# TIM images 2459614728caSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/TIM_(PlayStation_graphics) 2460614728caSSascha Wildner# Reference: https://mrclick.zophar.net/TilEd/download/timgfx.txt 2461614728caSSascha Wildner# Update: Joerg Jenderek 2462614728caSSascha Wildner# Note: called as "PSX TIM *bpp bitmap" by bitmap-tim-*.trid.xml 2463614728caSSascha Wildner# verified as "TIM PSX" by XnView `nconvert -fullinfo *.tim` and 2464614728caSSascha Wildner# by RECOIL `recoil2png -o TMP.PNG input.tim; file TMP.PNG` and often 2465614728caSSascha Wildner# as "PSX TIM" by ImageMagick version 7.1.0-10 command `identify *.tim` 2466614728caSSascha Wildner# here signed integers are used but according to Kaitai unsigned 2467*3b9cdfa3SAntonio Huete Jimenez0 ulelong 0x00000010 2468614728caSSascha Wildner# 32 Flag bits *cttt; c~CLUT flag t~type 000~4BPP 001~8BPP 010~16BPP 011~24BPP 100~Mixed 2469*3b9cdfa3SAntonio Huete Jimenez#>4 ulelong x FLAGS=%#x 2470614728caSSascha Wildner# 12+Size of CLUT (2Ch for 4BPP; 20Ch 40Ch 60Ch 80Ch C0Ch for 8BPP) or 2471614728caSSascha Wildner# +image data size (800Ch 2000Ch 2580C for 16BPP) (02000003h for dBase memo test.dbt) 2472*3b9cdfa3SAntonio Huete Jimenez#>8 ulelong x \b, 12+CLUT or data size=%#8.8x 2473614728caSSascha Wildner# CLUT or data size remainder is 12 (Ch), but 03 for dBase memo test.dbt 2474614728caSSascha Wildner#>8 ubyte&0x0F =0x0C \b, SIZE REMAINDER IS 12 2475614728caSSascha Wildner# skip dBase III memo test.dbt with invalid flags 22D10189h 2476*3b9cdfa3SAntonio Huete Jimenez>4 ulelong&0xffFFffF0 =0 Sony PlayStation PSX image, 2477614728caSSascha Wildner# file (version 5.40) labeled the above entry as "TIM image" 2478614728caSSascha Wildner!:mime image/x-sony-tim 2479614728caSSascha Wildner!:ext tim 2480*3b9cdfa3SAntonio Huete Jimenez#>>4 ulelong&0x00000007 x \b, BPP~%u 2481614728caSSascha Wildner# 4BPP and 8BPP examples exist with CLUT or without CLUT 2482*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong&0x07 0x0 4-Bit, 2483*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong&0x07 0x1 8-Bit, 2484614728caSSascha Wildner# 16BPP and 24BPP examples have no CLUT 2485*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong 0x2 15-Bit, 2486*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong 0x3 24-Bit, 2487614728caSSascha Wildner# no example 2488*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong&0x07 0x4 Mixed-Bit, 2489614728caSSascha Wildner# CLUT flag set 2490*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong &8 2491614728caSSascha Wildner# 12 + size of CLUT like: 1000Ch 800Ch 400Ch 40Ch and 2FEh (KAGE.TIM) 2492*3b9cdfa3SAntonio Huete Jimenez#>>>(8.l+8) ulelong x \b, 12+CLUT SIZE=%#8.8x 2493*3b9cdfa3SAntonio Huete Jimenez>>>(8.l+12) uleshort x Pixel at (%d, 2494*3b9cdfa3SAntonio Huete Jimenez>>>(8.l+14) uleshort x \b%d) Size= 2495614728caSSascha Wildner# image width (to get actual width multiply by 4 for 4BPP and by 2 for 8BPP) 2496*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x8 2497*3b9cdfa3SAntonio Huete Jimenez>>>>>(8.l+16) uleshort*4 x \b%d 2498*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x9 2499*3b9cdfa3SAntonio Huete Jimenez>>>>>(8.l+16) uleshort*2 x \b%d 2500614728caSSascha Wildner# image height like: 32 64 128 144 160 208 256 2501*3b9cdfa3SAntonio Huete Jimenez>>>(8.l+18) uleshort x \bx%d, 2502*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong 0x8 16 CLUT Entries at 2503*3b9cdfa3SAntonio Huete Jimenez>>>4 ulelong 0x9 256 CLUT Entries at 2504*3b9cdfa3SAntonio Huete Jimenez>>>12 uleshort x (%d, 2505*3b9cdfa3SAntonio Huete Jimenez>>>14 uleshort x \b%d) 2506614728caSSascha Wildner# no Color LookUp Table (CLUT) 2507*3b9cdfa3SAntonio Huete Jimenez>>4 ulelong ^8 2508*3b9cdfa3SAntonio Huete Jimenez# image origin X Y 2509*3b9cdfa3SAntonio Huete Jimenez>>>12 uleshort x Pixel at (%d, 2510*3b9cdfa3SAntonio Huete Jimenez>>>14 uleshort x \b%d) Size= 2511614728caSSascha Wildner# real image width = multiply by 4 (4BPP) 2 (8BPP) 1 (16BPP) 2/3 (24BPP) 2512*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x0 2513*3b9cdfa3SAntonio Huete Jimenez>>>>>16 uleshort*4 x \b%d 2514*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x1 2515*3b9cdfa3SAntonio Huete Jimenez>>>>>16 uleshort*2 x \b%d 2516*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x2 2517*3b9cdfa3SAntonio Huete Jimenez>>>>>16 uleshort x \b%d 2518*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x3 2519614728caSSascha Wildner# GRR: NOT working 2520*3b9cdfa3SAntonio Huete Jimenez#>>>>>16 uleshort*2/3 x \b%d 2521*3b9cdfa3SAntonio Huete Jimenez>>>>>16 uleshort x \b2/3*%d 2522614728caSSascha Wildner# mixed format width not explained! 2523*3b9cdfa3SAntonio Huete Jimenez>>>>4 ulelong 0x4 2524*3b9cdfa3SAntonio Huete Jimenez>>>>>16 uleshort x \b%d 2525614728caSSascha Wildner# image height like: 64 240 256 2526*3b9cdfa3SAntonio Huete Jimenez>>>18 uleshort x \bx%d 2527614728caSSascha Wildner# TIM image data 2528c30bd091SSascha Wildner 2529c30bd091SSascha Wildner# MDEC streams 2530*3b9cdfa3SAntonio Huete Jimenez0 ulelong 0x80010160 MDEC video stream, 2531*3b9cdfa3SAntonio Huete Jimenez>16 uleshort x %dx 2532*3b9cdfa3SAntonio Huete Jimenez>18 uleshort x \b%d 2533*3b9cdfa3SAntonio Huete Jimenez#>8 ulelong x %d frames 2534*3b9cdfa3SAntonio Huete Jimenez#>4 uleshort x secCount=%d; 2535*3b9cdfa3SAntonio Huete Jimenez#>6 uleshort x nSectors=%d; 2536*3b9cdfa3SAntonio Huete Jimenez#>12 ulelong x frameSize=%d; 2537c30bd091SSascha Wildner 2538c30bd091SSascha Wildner# BS encoded bitstreams 2539*3b9cdfa3SAntonio Huete Jimenez2 uleshort 0x3800 BS image, 2540*3b9cdfa3SAntonio Huete Jimenez>6 uleshort x Version %d, 2541*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x Quantization %d, 2542*3b9cdfa3SAntonio Huete Jimenez>0 uleshort x (Decompresses to %d words) 2543c30bd091SSascha Wildner 2544c30bd091SSascha Wildner# Type: farbfeld image. 2545c30bd091SSascha Wildner# Url: http://tools.suckless.org/farbfeld/ 2546c30bd091SSascha Wildner# From: Ian D. Scott <ian@iandouglasscott.com> 2547c30bd091SSascha Wildner# 2548c30bd091SSascha Wildner0 string farbfeld farbfeld image data, 2549c30bd091SSascha Wildner>8 ubelong x %dx 2550c30bd091SSascha Wildner>12 ubelong x \b%d 2551c30bd091SSascha Wildner 2552*3b9cdfa3SAntonio Huete Jimenez# Type: Microsoft DirectDraw Surface (DXGI formats) 2553*3b9cdfa3SAntonio Huete Jimenez# URL: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp 2554*3b9cdfa3SAntonio Huete Jimenez# From: Morten Hustveit <morten@debian.org> 2555*3b9cdfa3SAntonio Huete Jimenez# Updated by: David Korth <gerbilsoft@gerbilsoft.com> 2556*3b9cdfa3SAntonio Huete Jimenez0 name ms-directdraw-dx10 2557*3b9cdfa3SAntonio Huete Jimenez>0 ulelong x \b, DXGI format: 2558*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1 R32G32B32A32_TYPELESS 2559*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 2 R32G32B32A32_FLOAT 2560*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 3 R32G32B32A32_UINT 2561*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 4 R32G32B32A32_SINT 2562*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 5 R32G32B32_TYPELESS 2563*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 6 R32G32B32_FLOAT 2564*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 7 R32G32B32_UINT 2565*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 8 R32G32B32_SINT 2566*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 9 R16G16B16A16_TYPELESS 2567*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 10 R16G16B16A16_FLOAT 2568*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 11 R16G16B16A16_UNORM 2569*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 12 R16G16B16A16_UINT 2570*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 13 R16G16B16A16_SNORM 2571*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 14 R16G16B16A16_SINT 2572*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 15 R32G32_TYPELESS 2573*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 16 R32G32_FLOAT 2574*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 17 R32G32_UINT 2575*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 18 R32G32_SINT 2576*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 19 R32G8X24_TYPELESS 2577*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 20 D32_FLOAT_S8X24_UINT 2578*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 21 R32_FLOAT_X8X24_TYPELESS 2579*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 22 X32_TYPELESS_G8X24_UINT 2580*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 23 R10G10B10A2_TYPELESS 2581*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 24 R10G10B10A2_UNORM 2582*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 25 R10G10B10A2_UINT 2583*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 26 R11G11B10_FLOAT 2584*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 27 R8G8B8A8_TYPELESS 2585*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 28 R8G8B8A8_UNORM 2586*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 29 R8G8B8A8_UNORM_SRGB 2587*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 30 R8G8B8A8_UINT 2588*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 31 R8G8B8A8_SNORM 2589*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 32 R8G8B8A8_SINT 2590*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 33 R16G16_TYPELESS 2591*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 34 R16G16_FLOAT 2592*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 35 R16G16_UNORM 2593*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 36 R16G16_UINT 2594*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 37 R16G16_SNORM 2595*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 38 R16G16_SINT 2596*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 39 R32_TYPELESS 2597*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 40 D32_FLOAT 2598*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 41 R32_FLOAT 2599*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 42 R32_UINT 2600*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 43 R32_SINT 2601*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 44 R24G8_TYPELESS 2602*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 45 D24_UNORM_S8_UINT 2603*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 46 R24_UNORM_X8_TYPELESS 2604*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 47 X24_TYPELESS_G8_UINT 2605*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 48 R8G8_TYPELESS 2606*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 49 R8G8_UNORM 2607*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 50 R8G8_UINT 2608*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 51 R8G8_SNORM 2609*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 52 R8G8_SINT 2610*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 53 R16_TYPELESS 2611*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 54 R16_FLOAT 2612*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 55 D16_UNORM 2613*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 56 R16_UNORM 2614*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 57 R16_UINT 2615*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 58 R16_SNORM 2616*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 59 R16_SINT 2617*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 60 R8_TYPELESS 2618*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 61 R8_UNORM 2619*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 62 R8_UINT 2620*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 63 R8_SNORM 2621*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 64 R8_SINT 2622*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 65 A8_UNORM 2623*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 66 R1_UNORM 2624*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 67 R9G9B9E5_SHAREDEXP 2625*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 68 R8G8_B8G8_UNORM 2626*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 69 G8R8_G8B8_UNORM 2627*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 70 BC1_TYPELESS 2628*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 71 BC1_UNORM 2629*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 72 BC1_UNORM_SRGB 2630*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 73 BC2_TYPELESS 2631*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 74 BC2_UNORM 2632*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 75 BC2_UNORM_SRGB 2633*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 76 BC3_TYPELESS 2634*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 77 BC3_UNORM 2635*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 78 BC3_UNORM_SRGB 2636*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 79 BC4_TYPELESS 2637*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 80 BC4_UNORM 2638*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 81 BC4_SNORM 2639*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 82 BC5_TYPELESS 2640*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 83 BC5_UNORM 2641*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 84 BC5_SNORM 2642*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 85 B5G6R5_UNORM 2643*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 86 B5G5R5A1_UNORM 2644*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 87 B8G8R8A8_UNORM 2645*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 88 B8G8R8X8_UNORM 2646*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 89 R10G10B10_XR_BIAS_A2_UNORM 2647*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 90 B8G8R8A8_TYPELESS 2648*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 91 B8G8R8A8_UNORM_SRGB 2649*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 92 B8G8R8X8_TYPELESS 2650*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 93 B8G8R8X8_UNORM_SRGB 2651*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 94 BC6H_TYPELESS 2652*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 95 BC6H_UF16 2653*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 96 BC6H_SF16 2654*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 97 BC7_TYPELESS 2655*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 98 BC7_UNORM 2656*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 99 BC7_UNORM_SRGB 2657*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 100 AYUV 2658*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 101 Y410 2659*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 102 Y416 2660*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 103 NV12 2661*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 104 P010 2662*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 105 P016 2663*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 106 420_OPAQUE 2664*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 107 YUY2 2665*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 108 Y210 2666*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 109 Y216 2667*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 110 NV11 2668*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 111 AI44 2669*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 112 IA44 2670*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 113 P8 2671*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 114 A8P8 2672*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 115 B4G4R4A4_UNORM 2673*3b9cdfa3SAntonio Huete Jimenez 2674*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 116 XBOX_R10G10B10_7E3_A2_FLOAT 2675*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 117 XBOX_R10G10B10_6E4_A2_FLOAT 2676*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 118 XBOX_D16_UNORM_S8_UINT 2677*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 119 XBOX_R16_UNORM_X8_TYPELESS 2678*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 120 XBOX_X16_TYPELESS_G8_UINT 2679*3b9cdfa3SAntonio Huete Jimenez 2680*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 130 DXGI_FORMAT_P208 2681*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 131 DXGI_FORMAT_V208 2682*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 132 DXGI_FORMAT_V408 2683*3b9cdfa3SAntonio Huete Jimenez 2684*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 133 ASTC_4X4_TYPELESS 2685*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 134 ASTC_4X4_UNORM 2686*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 135 ASTC_4X4_UNORM_SRGB 2687*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 137 ASTC_5X4_TYPELESS 2688*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 138 ASTC_5X4_UNORM 2689*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 139 ASTC_5X4_UNORM_SRGB 2690*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 141 ASTC_5X5_TYPELESS 2691*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 142 ASTC_5X5_UNORM 2692*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 143 ASTC_5X5_UNORM_SRGB 2693*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 145 ASTC_6X5_TYPELESS 2694*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 146 ASTC_6X5_UNORM 2695*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 147 ASTC_6X5_UNORM_SRGB 2696*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 149 ASTC_6X6_TYPELESS 2697*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 150 ASTC_6X6_UNORM 2698*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 151 ASTC_6X6_UNORM_SRGB 2699*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 153 ASTC_8X5_TYPELESS 2700*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 154 ASTC_8X5_UNORM 2701*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 155 ASTC_8X5_UNORM_SRGB 2702*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 157 ASTC_8X6_TYPELESS 2703*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 158 ASTC_8X6_UNORM 2704*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 159 ASTC_8X6_UNORM_SRGB 2705*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 161 ASTC_8X8_TYPELESS 2706*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 162 ASTC_8X8_UNORM 2707*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 163 ASTC_8X8_UNORM_SRGB 2708*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 165 ASTC_10X5_TYPELESS 2709*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 166 ASTC_10X5_UNORM 2710*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 167 ASTC_10X5_UNORM_SRGB 2711*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 169 ASTC_10X6_TYPELESS 2712*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 170 ASTC_10X6_UNORM 2713*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 171 ASTC_10X6_UNORM_SRGB 2714*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 173 ASTC_10X8_TYPELESS 2715*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 174 ASTC_10X8_UNORM 2716*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 175 ASTC_10X8_UNORM_SRGB 2717*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 177 ASTC_10X10_TYPELESS 2718*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 178 ASTC_10X10_UNORM 2719*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 179 ASTC_10X10_UNORM_SRGB 2720*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 181 ASTC_12X10_TYPELESS 2721*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 182 ASTC_12X10_UNORM 2722*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 183 ASTC_12X10_UNORM_SRGB 2723*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 185 ASTC_12X12_TYPELESS 2724*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 186 ASTC_12X12_UNORM 2725*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 187 ASTC_12X12_UNORM_SRGB 2726*3b9cdfa3SAntonio Huete Jimenez 2727*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 190 XBOX_R10G10B10_SNORM_A2_UNORM 2728*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 189 XBOX_R4G4_UNORM 2729*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0xFFFFFFFF DXGI_FORMAT_FORCE_UINT 2730*3b9cdfa3SAntonio Huete Jimenez 27316fca56fbSSascha Wildner# Type: Microsoft DirectDraw Surface (common data) 27326fca56fbSSascha Wildner# URL: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp 27336fca56fbSSascha Wildner# From: Morten Hustveit <morten@debian.org> 27346fca56fbSSascha Wildner# Updated by: David Korth <gerbilsoft@gerbilsoft.com> 27356fca56fbSSascha Wildner0 name ms-directdraw-surface 27366fca56fbSSascha Wildner>0x10 ulelong x %u x 27376fca56fbSSascha Wildner>0x0C ulelong x %u 27386fca56fbSSascha Wildner# Color depth. 27396fca56fbSSascha Wildner>0x58 ulelong >0 \b, %u-bit color 27406fca56fbSSascha Wildner# Determine the pixel format. 27416fca56fbSSascha Wildner>0x50 ulelong&0x4 4 27426fca56fbSSascha Wildner# FIXME: Handle DX10 and XBOX formats. 2743*3b9cdfa3SAntonio Huete Jimenez>>0x54 string DX10 2744*3b9cdfa3SAntonio Huete Jimenez>>>0x80 use ms-directdraw-dx10 2745*3b9cdfa3SAntonio Huete Jimenez>>0x54 string !DX10 \b, compressed using %.4s 27466fca56fbSSascha Wildner>0x50 ulelong&0x2 0x2 \b, alpha only 27476fca56fbSSascha Wildner>0x50 ulelong&0x200 0x200 \b, YUV 27486fca56fbSSascha Wildner>0x50 ulelong&0x20000 0x20000 \b, luminance 27496fca56fbSSascha Wildner# RGB pixel format 27506fca56fbSSascha Wildner>0x50 ulelong&0x40 0x40 27516fca56fbSSascha Wildner 27526fca56fbSSascha Wildner# Determine the RGB format using the color masks. 27536fca56fbSSascha Wildner# ulequad order: 0xGGGGGGGGRRRRRRRR, 0xAAAAAAAABBBBBBBB 27546fca56fbSSascha Wildner 27556fca56fbSSascha Wildner>>0x58 ulelong 16 27566fca56fbSSascha Wildner 27576fca56fbSSascha Wildner# NOTE: 15-bit color formats usually have 16-bit listed as the color depth. 27586fca56fbSSascha Wildner>>>0x5C ulequad 0x000003E000007C00 27596fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000000000001F \b, RGB555 27606fca56fbSSascha Wildner>>>0x5C ulequad 0x000003E000001F00 27616fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000000000007C \b, BGR555 27626fca56fbSSascha Wildner 27636fca56fbSSascha Wildner>>>0x5C ulequad 0x000007E00000F800 27646fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000000000001F \b, RGB565 27656fca56fbSSascha Wildner>>>0x5C ulequad 0x000007E000001F00 27666fca56fbSSascha Wildner>>>>0x64 ulequad 0x00000000000000F8 \b, BGR565 27676fca56fbSSascha Wildner 27686fca56fbSSascha Wildner>>>0x5C ulequad 0x000000F000000F00 27696fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000F0000000000F \b, ARGB4444 27706fca56fbSSascha Wildner>>>0x5C ulequad 0x000000F00000000F 27716fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000F00000000F00 \b, ABGR4444 27726fca56fbSSascha Wildner 27736fca56fbSSascha Wildner>>>0x5C ulequad 0x00000F000000F000 27746fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000F000000F0 \b, RGBA4444 27756fca56fbSSascha Wildner>>>0x5C ulequad 0x00000F00000000F0 27766fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000F0000F000 \b, BGRA4444 27776fca56fbSSascha Wildner 27786fca56fbSSascha Wildner>>>0x5C ulequad 0x000000F000000F00 27796fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000000000000F \b, xRGB4444 27806fca56fbSSascha Wildner>>>0x5C ulequad 0x000000F00000000F 27816fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000000000F00 \b, xBGR4444 27826fca56fbSSascha Wildner 27836fca56fbSSascha Wildner>>>0x5C ulequad 0x00000F000000F000 27846fca56fbSSascha Wildner>>>>0x64 ulequad 0x00000000000000F0 \b, RGBx4444 27856fca56fbSSascha Wildner>>>0x5C ulequad 0x00000F00000000F0 27866fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000000000F000 \b, BGRx4444 27876fca56fbSSascha Wildner 27886fca56fbSSascha Wildner>>>0x5C ulequad 0x000003E000007C00 27896fca56fbSSascha Wildner>>>>0x64 ulequad 0x000080000000001F \b, ARGB1555 27906fca56fbSSascha Wildner>>>0x5C ulequad 0x000003E000001F00 27916fca56fbSSascha Wildner>>>>0x64 ulequad 0x000080000000007C \b, ABGR1555 27926fca56fbSSascha Wildner>>>0x5C ulequad 0x000007C00000F800 27936fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000010000003E \b, RGBA5551 27946fca56fbSSascha Wildner>>>0x5C ulequad 0x000007C00000003E 27956fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000010000F800 \b, BGRA5551 27966fca56fbSSascha Wildner 27976fca56fbSSascha Wildner>>88 ulelong 24 27986fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FF0000FF0000 27996fca56fbSSascha Wildner>>>>0x64 ulequad 0x00000000000000FF \b, RGB888 28006fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FF00000000FF 28016fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000000FF0000 \b, BGR888 28026fca56fbSSascha Wildner 28036fca56fbSSascha Wildner>>88 ulelong 32 28046fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FF0000FF0000 28056fca56fbSSascha Wildner>>>>0x64 ulequad 0xFF000000000000FF \b, ARGB8888 28066fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FF00000000FF 28076fca56fbSSascha Wildner>>>>0x64 ulequad 0xFF00000000FF0000 \b, ABGR8888 28086fca56fbSSascha Wildner 28096fca56fbSSascha Wildner>>>0x5C ulequad 0x00FF0000FF000000 28106fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000FF0000FF00 \b, RGBA8888 28116fca56fbSSascha Wildner>>>0x5C ulequad 0x00FF00000000FF00 28126fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000FFFF000000 \b, BGBA8888 28136fca56fbSSascha Wildner 28146fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FF0000FF0000 28156fca56fbSSascha Wildner>>>>0x64 ulequad 0x00000000000000FF \b, xRGB8888 28166fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FF00000000FF 28176fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000000FF0000 \b, xBGR8888 28186fca56fbSSascha Wildner 28196fca56fbSSascha Wildner>>>0x5C ulequad 0x00FF0000FF000000 28206fca56fbSSascha Wildner>>>>0x64 ulequad 0x000000000000FF00 \b, RGBx8888 28216fca56fbSSascha Wildner>>>0x5C ulequad 0x00FF00000000FF00 28226fca56fbSSascha Wildner>>>>0x64 ulequad 0x00000000FF000000 \b, BGBx8888 28236fca56fbSSascha Wildner 28246fca56fbSSascha Wildner# Less common 32-bit color formats. 28256fca56fbSSascha Wildner>>>0x5C ulequad 0xFFFF00000000FFFF 28266fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000000000000 \b, G16R16 28276fca56fbSSascha Wildner>>>0x5C ulequad 0x0000FFFFFFFF0000 28286fca56fbSSascha Wildner>>>>0x64 ulequad 0x0000000000000000 \b, R16G16 28296fca56fbSSascha Wildner 28306fca56fbSSascha Wildner>>>0x5C ulequad 0x000FFC003FF00000 28316fca56fbSSascha Wildner>>>>0x64 ulequad 0xC0000000000003FF \b, A2R10G10B10 28326fca56fbSSascha Wildner>>>0x5C ulequad 0x000FFC00000003FF 28336fca56fbSSascha Wildner>>>>0x64 ulequad 0xC00000003FF00000 \b, A2B10G10R10 28346fca56fbSSascha Wildner 28356fca56fbSSascha Wildner# Type: Microsoft DirectDraw Surface 28366fca56fbSSascha Wildner# URL: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp 28376fca56fbSSascha Wildner# From: Morten Hustveit <morten@debian.org> 28386fca56fbSSascha Wildner# Updated by: David Korth <gerbilsoft@gerbilsoft.com> 28396fca56fbSSascha Wildner0 string/b DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS): 28406fca56fbSSascha Wildner>0 use ms-directdraw-surface 28416fca56fbSSascha Wildner 2842c30bd091SSascha Wildner# Type: Sega PVR image. 2843c30bd091SSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 2844c30bd091SSascha Wildner# References: 28456fca56fbSSascha Wildner# - https://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt 2846c30bd091SSascha Wildner# - https://github.com/yazgoo/pvrx2png 2847c30bd091SSascha Wildner# - https://github.com/nickworonekin/puyotools 2848c30bd091SSascha Wildner 2849c30bd091SSascha Wildner# Sega PVR header. 2850c30bd091SSascha Wildner0 name sega-pvr-image-header 2851*3b9cdfa3SAntonio Huete Jimenez>0x0C uleshort x %u x 2852*3b9cdfa3SAntonio Huete Jimenez>0x0E uleshort x %u 2853c30bd091SSascha Wildner# Image format. 2854*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 0 \b, ARGB1555 2855*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 1 \b, RGB565 2856*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 2 \b, ARGB4444 2857*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 3 \b, YUV442 2858*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 4 \b, Bump 2859*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 5 \b, 4bpp 2860*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte 6 \b, 8bpp 2861c30bd091SSascha Wildner# Image data type. 2862*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x01 \b, square twiddled 2863*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x02 \b, square twiddled & mipmap 2864*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x03 \b, VQ 2865*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x04 \b, VQ & mipmap 2866*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x05 \b, 8-bit CLUT twiddled 2867*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x06 \b, 4-bit CLUT twiddled 2868*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x07 \b, 8-bit direct twiddled 2869*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x08 \b, 4-bit direct twiddled 2870*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x09 \b, rectangle 2871*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x0B \b, rectangular stride 2872*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x0D \b, rectangular twiddled 2873*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x10 \b, small VQ 2874*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x11 \b, small VQ & mipmap 2875*3b9cdfa3SAntonio Huete Jimenez>0x09 ubyte 0x12 \b, square twiddled & mipmap 2876c30bd091SSascha Wildner 2877c30bd091SSascha Wildner# Sega PVR image. 2878c30bd091SSascha Wildner0 string PVRT 2879c30bd091SSascha Wildner>0x10 string DDS\040\174\000\000\000 Sega PVR (Xbox) image: 28806fca56fbSSascha Wildner>>0x20 use ms-directdraw-surface 2881*3b9cdfa3SAntonio Huete Jimenez>0x10 ubelong !0x44445320 Sega PVR image: 2882c30bd091SSascha Wildner>>0 use sega-pvr-image-header 2883c30bd091SSascha Wildner 2884c30bd091SSascha Wildner# Sega PVR image with GBIX. 2885c30bd091SSascha Wildner0 string GBIX 2886c30bd091SSascha Wildner>0x10 string PVRT 2887c30bd091SSascha Wildner>>0x10 string DDS\040\174\000\000\000 Sega PVR (Xbox) image: 28886fca56fbSSascha Wildner>>>0x20 use ms-directdraw-surface 2889*3b9cdfa3SAntonio Huete Jimenez>>0x10 ubelong !0x44445320 Sega PVR image: 2890c30bd091SSascha Wildner>>>0x10 use sega-pvr-image-header 2891*3b9cdfa3SAntonio Huete Jimenez>>0x08 ulelong x \b, global index = %u 2892c30bd091SSascha Wildner 2893c30bd091SSascha Wildner# Sega GVR header. 2894c30bd091SSascha Wildner0 name sega-gvr-image-header 2895*3b9cdfa3SAntonio Huete Jimenez>0x0C ubeshort x %u x 2896*3b9cdfa3SAntonio Huete Jimenez>0x0E ubeshort x %u 2897c30bd091SSascha Wildner# Image data format. 2898*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 0 \b, I4 2899*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 1 \b, I8 2900*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 2 \b, IA4 2901*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 3 \b, IA8 2902*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 4 \b, RGB565 2903*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 5 \b, RGB5A3 2904*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 6 \b, ARGB8888 2905*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 8 \b, CI4 2906*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 9 \b, CI8 2907*3b9cdfa3SAntonio Huete Jimenez>0x0B ubyte 14 \b, DXT1 2908c30bd091SSascha Wildner 2909c30bd091SSascha Wildner# Sega GVR image. 2910c30bd091SSascha Wildner0 string GVRT Sega GVR image: 2911c30bd091SSascha Wildner>0x10 use sega-gvr-image-header 2912c30bd091SSascha Wildner 2913c30bd091SSascha Wildner# Sega GVR image with GBIX. 2914c30bd091SSascha Wildner0 string GBIX 2915c30bd091SSascha Wildner>0x10 string GVRT Sega GVR image: 2916c30bd091SSascha Wildner>>0x10 use sega-gvr-image-header 2917*3b9cdfa3SAntonio Huete Jimenez>>0x08 ubelong x \b, global index = %u 2918c30bd091SSascha Wildner 29196fca56fbSSascha Wildner# Sega GVR image with GCIX. (Wii) 29206fca56fbSSascha Wildner0 string GCIX 29216fca56fbSSascha Wildner>0x10 string GVRT Sega GVR image: 29226fca56fbSSascha Wildner>>0x10 use sega-gvr-image-header 2923*3b9cdfa3SAntonio Huete Jimenez>>0x08 ubelong x \b, global index = %u 29246fca56fbSSascha Wildner 2925c30bd091SSascha Wildner# Light Field Picture 2926c30bd091SSascha Wildner# Documentation: http://optics.miloush.net/lytro/TheFileFormat.aspx 2927c30bd091SSascha Wildner# Typical file extensions: .lfp .lfr .lfx 2928c30bd091SSascha Wildner 2929*3b9cdfa3SAntonio Huete Jimenez0 ubelong 0x894C4650 2930*3b9cdfa3SAntonio Huete Jimenez>4 ubelong 0x0D0A1A0A 2931*3b9cdfa3SAntonio Huete Jimenez>12 ubelong 0x00000000 Lytro Light Field Picture 2932*3b9cdfa3SAntonio Huete Jimenez>8 ubelong x \b, version %d 29336fca56fbSSascha Wildner 29346fca56fbSSascha Wildner# Type: Vision Research Phantom CINE Format 29356fca56fbSSascha Wildner# URL: https://www.phantomhighspeed.com/ 29366fca56fbSSascha Wildner# URL2: http://phantomhighspeed.force.com/vriknowledge/servlet/fileField?id=0BEU0000000Cfyk 29376fca56fbSSascha Wildner# From: Harry Mallon <hjmallon at gmail.com> 29386fca56fbSSascha Wildner# 29396fca56fbSSascha Wildner# This has a short "CI" code but the 44 is the size of the struct which is 29406fca56fbSSascha Wildner# stable 29416fca56fbSSascha Wildner0 string CI 2942*3b9cdfa3SAntonio Huete Jimenez>2 uleshort 44 Vision Research CINE Video, 2943*3b9cdfa3SAntonio Huete Jimenez>>4 uleshort 0 Grayscale, 2944*3b9cdfa3SAntonio Huete Jimenez>>4 uleshort 1 JPEG Compressed, 2945*3b9cdfa3SAntonio Huete Jimenez>>4 uleshort 2 RAW, 2946*3b9cdfa3SAntonio Huete Jimenez>>6 uleshort x version %d, 2947*3b9cdfa3SAntonio Huete Jimenez>>20 ulelong x %d frames, 2948*3b9cdfa3SAntonio Huete Jimenez>>48 ulelong x %dx 2949*3b9cdfa3SAntonio Huete Jimenez>>52 ulelong x \b%d 29506fca56fbSSascha Wildner 29516fca56fbSSascha Wildner# Type: ARRI Raw Image 29526fca56fbSSascha Wildner# Info: SMPTE RDD30:2014 29536fca56fbSSascha Wildner# From: Harry Mallon <hjmallon at gmail.com> 29546fca56fbSSascha Wildner0 string ARRI ARRI ARI image data, 2955*3b9cdfa3SAntonio Huete Jimenez>4 ulelong 0x78563412 little-endian, 2956*3b9cdfa3SAntonio Huete Jimenez>4 ulelong 0x12345678 big-endian, 2957*3b9cdfa3SAntonio Huete Jimenez>12 ulelong x version %d, 2958*3b9cdfa3SAntonio Huete Jimenez>20 ulelong x %dx 2959*3b9cdfa3SAntonio Huete Jimenez>24 ulelong x \b%d 29606fca56fbSSascha Wildner 29616fca56fbSSascha Wildner# Type: Khronos KTX texture. 29626fca56fbSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 2963c990e5baSDaniel Fojt# Reference: https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/ 29646fca56fbSSascha Wildner 29656fca56fbSSascha Wildner# glEnum decoding. 29666fca56fbSSascha Wildner# NOTE: Only the most common formats are listed here. 29676fca56fbSSascha Wildner0 name khronos-ktx-glEnum 2968*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x1907 \b, RGB 2969*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x1908 \b, RGBA 2970*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x1909 \b, LUMINANCE 2971*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x190A \b, LUMINANCE_ALPHA 2972*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x80E1 \b, BGR 2973*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x80E2 \b, BGRA 2974*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83A0 \b, RGB_S3TC 2975*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83A1 \b, RGB4_S3TC 2976*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83A2 \b, RGBA_S3TC 2977*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83A3 \b, RGBA4_S3TC 2978*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83A4 \b, RGBA_DXT5_S3TC 2979*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83A5 \b, RGBA4_DXT5_S3TC 2980*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83F0 \b, COMPRESSED_RGB_S3TC_DXT1_EXT 2981*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83F1 \b, COMPRESSED_RGBA_S3TC_DXT1_EXT 2982*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83F2 \b, COMPRESSED_RGBA_S3TC_DXT3_EXT 2983*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x83F3 \b, COMPRESSED_RGBA_S3TC_DXT5_EXT 2984*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x8D64 \b, ETC1_RGB8_OES 2985*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9270 \b, COMPRESSED_R11_EAC 2986*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9271 \b, COMPRESSED_SIGNED_R11_EAC 2987*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9272 \b, COMPRESSED_RG11_EAC 2988*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9273 \b, COMPRESSED_SIGNED_RG11_EAC 2989*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9274 \b, COMPRESSED_RGB8_ETC2 2990*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9275 \b, COMPRESSED_SRGB8_ETC2 2991*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9276 \b, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 2992*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9277 \b, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 2993*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9278 \b, COMPRESSED_RGBA2_ETC2_EAC 2994*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x9279 \b, COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 2995*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B0 \b, COMPRESSED_RGBA_ASTC_4x4_KHR 2996*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B1 \b, COMPRESSED_RGBA_ASTC_5x4_KHR 2997*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B2 \b, COMPRESSED_RGBA_ASTC_5x5_KHR 2998*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B3 \b, COMPRESSED_RGBA_ASTC_6x5_KHR 2999*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B4 \b, COMPRESSED_RGBA_ASTC_6x6_KHR 3000*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B5 \b, COMPRESSED_RGBA_ASTC_8x5_KHR 3001*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B6 \b, COMPRESSED_RGBA_ASTC_8x6_KHR 3002*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B7 \b, COMPRESSED_RGBA_ASTC_8x8_KHR 3003*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B8 \b, COMPRESSED_RGBA_ASTC_10x5_KHR 3004*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93B9 \b, COMPRESSED_RGBA_ASTC_10x6_KHR 3005*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93BA \b, COMPRESSED_RGBA_ASTC_10x8_KHR 3006*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93BB \b, COMPRESSED_RGBA_ASTC_10x10_KHR 3007*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93BC \b, COMPRESSED_RGBA_ASTC_12x10_KHR 3008*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93BD \b, COMPRESSED_RGBA_ASTC_12x12_KHR 3009*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D0 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 3010*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D1 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 3011*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D2 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 3012*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D3 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 3013*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D4 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 3014*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D5 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 3015*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D6 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 3016*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D7 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 3017*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D8 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 3018*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93D9 \b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 3019*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93DA \b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 3020*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93DB \b, COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 3021*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93DC \b, COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 3022*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0x93DD \b, COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 30236fca56fbSSascha Wildner 30246fca56fbSSascha Wildner# Endian-specific KTX header. 30256fca56fbSSascha Wildner# TODO: glType (all textures I've seen so far are GL_UNSIGNED_BYTE) 30266fca56fbSSascha Wildner0 name khronos-ktx-endian-header 3027*3b9cdfa3SAntonio Huete Jimenez>20 ulelong x \b, %u 3028*3b9cdfa3SAntonio Huete Jimenez>24 ulelong >1 x %u 3029*3b9cdfa3SAntonio Huete Jimenez>28 ulelong >1 x %u 3030*3b9cdfa3SAntonio Huete Jimenez>8 ulelong >0 30316fca56fbSSascha Wildner>>8 use khronos-ktx-glEnum 3032*3b9cdfa3SAntonio Huete Jimenez>8 ulelong 0 30336fca56fbSSascha Wildner>>12 use khronos-ktx-glEnum 30346fca56fbSSascha Wildner 30356fca56fbSSascha Wildner# Main KTX header. 30366fca56fbSSascha Wildner# Determine endianness, then check the rest of the header. 30376fca56fbSSascha Wildner0 string \xABKTX\ 11\xBB\r\n\x1A\n Khronos KTX texture 3038*3b9cdfa3SAntonio Huete Jimenez>12 ulelong 0x04030201 (little-endian) 30396fca56fbSSascha Wildner>>16 use khronos-ktx-endian-header 3040*3b9cdfa3SAntonio Huete Jimenez>12 ubelong 0x04030201 (big-endian) 30416fca56fbSSascha Wildner>>16 use \^khronos-ktx-endian-header 30426fca56fbSSascha Wildner 3043c990e5baSDaniel Fojt# Type: Khronos KTX2 texture. 3044c990e5baSDaniel Fojt# From: David Korth <gerbilsoft@gerbilsoft.com> 3045c990e5baSDaniel Fojt# Based on draft19. 3046c990e5baSDaniel Fojt# Reference: http://github.khronos.org/KTX-Specification/ 3047c990e5baSDaniel Fojt 3048c990e5baSDaniel Fojt# Supercompression enum. 3049c990e5baSDaniel Fojt0 name khronos-ktx2-supercompression 3050*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1 BasisLZ 3051*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 2 Zstandard 3052*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 3 ZLIB 3053c990e5baSDaniel Fojt 3054c990e5baSDaniel Fojt# Vulkan format identifier. 3055c990e5baSDaniel Fojt# NOTE: Formats prohibited from KTX2 are commented out. 3056c990e5baSDaniel Fojt0 name khronos-ktx2-vkFormat 3057*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0 UNDEFINED 3058*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1 R4G4_UNORM_PACK8 3059*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 2 R4G4B4A4_UNORM_PACK16 3060*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 3 B4G4R4A4_UNORM_PACK16 3061*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 4 R5G6B5_UNORM_PACK16 3062*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 5 B5G6R5_UNORM_PACK16 3063*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 6 R5G5B5A1_UNORM_PACK16 3064*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 7 B5G5R5A1_UNORM_PACK16 3065*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 8 A1R5G5B5_UNORM_PACK16 3066*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 9 R8_UNORM 3067*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 10 R8_SNORM 3068*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 11 R8_USCALED 3069*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 12 R8_SSCALED 3070*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 13 R8_UINT 3071*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 14 R8_SINT 3072*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 15 R8_SRGB 3073*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 16 R8G8_UNORM 3074*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 17 R8G8_SNORM 3075*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 18 R8G8_USCALED 3076*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 19 R8G8_SSCALED 3077*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 20 R8G8_UINT 3078*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 21 R8G8_SINT 3079*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 22 R8G8_SRGB 3080*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 23 R8G8B8_UNORM 3081*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 24 R8G8B8_SNORM 3082*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 25 R8G8B8_USCALED 3083*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 26 R8G8B8_SSCALED 3084*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 27 R8G8B8_UINT 3085*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 28 R8G8B8_SINT 3086*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 29 R8G8B8_SRGB 3087*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 30 B8G8R8_UNORM 3088*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 31 B8G8R8_SNORM 3089*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 32 B8G8R8_USCALED 3090*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 33 B8G8R8_SSCALED 3091*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 34 B8G8R8_UINT 3092*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 35 B8G8R8_SINT 3093*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 36 B8G8R8_SRGB 3094*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 37 R8G8B8A8_UNORM 3095*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 38 R8G8B8A8_SNORM 3096*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 39 R8G8B8A8_USCALED 3097*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 40 R8G8B8A8_SSCALED 3098*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 41 R8G8B8A8_UINT 3099*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 42 R8G8B8A8_SINT 3100*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 43 R8G8B8A8_SRGB 3101*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 44 B8G8R8A8_UNORM 3102*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 45 B8G8R8A8_SNORM 3103*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 46 B8G8R8A8_USCALED 3104*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 47 B8G8R8A8_SSCALED 3105*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 48 B8G8R8A8_UINT 3106*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 49 B8G8R8A8_SINT 3107*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 50 B8G8R8A8_SRGB 3108*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 51 A8B8G8R8_UNORM_PACK32 3109*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 52 A8B8G8R8_SNORM_PACK32 3110*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 53 A8B8G8R8_USCALED_PACK32 3111*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 54 A8B8G8R8_SSCALED_PACK32 3112*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 55 A8B8G8R8_UINT_PACK32 3113*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 56 A8B8G8R8_SINT_PACK32 3114*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 57 A8B8G8R8_SRGB_PACK32 3115*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 58 A2R10G10B10_UNORM_PACK32 3116*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 59 A2R10G10B10_SNORM_PACK32 3117*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 60 A2R10G10B10_USCALED_PACK32 3118*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 61 A2R10G10B10_SSCALED_PACK32 3119*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 62 A2R10G10B10_UINT_PACK32 3120*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 63 A2R10G10B10_SINT_PACK32 3121*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 64 A2B10G10R10_UNORM_PACK32 3122*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 65 A2B10G10R10_SNORM_PACK32 3123*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 66 A2B10G10R10_USCALED_PACK32 3124*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 67 A2B10G10R10_SSCALED_PACK32 3125*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 68 A2B10G10R10_UINT_PACK32 3126*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 69 A2B10G10R10_SINT_PACK32 3127*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 70 R16_UNORM 3128*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 71 R16_SNORM 3129*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 72 R16_USCALED 3130*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 73 R16_SSCALED 3131*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 74 R16_UINT 3132*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 75 R16_SINT 3133*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 76 R16_SFLOAT 3134*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 77 R16G16_UNORM 3135*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 78 R16G16_SNORM 3136*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 79 R16G16_USCALED 3137*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 80 R16G16_SSCALED 3138*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 81 R16G16_UINT 3139*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 82 R16G16_SINT 3140*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 83 R16G16_SFLOAT 3141*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 84 R16G16B16_UNORM 3142*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 85 R16G16B16_SNORM 3143*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 86 R16G16B16_USCALED 3144*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 87 R16G16B16_SSCALED 3145*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 88 R16G16B16_UINT 3146*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 89 R16G16B16_SINT 3147*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 90 R16G16B16_SFLOAT 3148*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 91 R16G16B16A16_UNORM 3149*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 92 R16G16B16A16_SNORM 3150*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 93 R16G16B16A16_USCALED 3151*3b9cdfa3SAntonio Huete Jimenez#>0 ulelong 94 R16G16B16A16_SSCALED 3152*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 95 R16G16B16A16_UINT 3153*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 96 R16G16B16A16_SINT 3154*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 97 R16G16B16A16_SFLOAT 3155*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 98 R32_UINT 3156*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 99 R32_SINT 3157*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 100 R32_SFLOAT 3158*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 101 R32G32_UINT 3159*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 102 R32G32_SINT 3160*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 103 R32G32_SFLOAT 3161*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 104 R32G32B32_UINT 3162*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 105 R32G32B32_SINT 3163*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 106 R32G32B32_SFLOAT 3164*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 107 R32G32B32A32_UINT 3165*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 108 R32G32B32A32_SINT 3166*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 109 R32G32B32A32_SFLOAT 3167*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 110 R64_UINT 3168*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 111 R64_SINT 3169*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 112 R64_SFLOAT 3170*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 113 R64G64_UINT 3171*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 114 R64G64_SINT 3172*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 115 R64G64_SFLOAT 3173*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 116 R64G64B64_UINT 3174*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 117 R64G64B64_SINT 3175*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 118 R64G64B64_SFLOAT 3176*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 119 R64G64B64A64_UINT 3177*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 120 R64G64B64A64_SINT 3178*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 121 R64G64B64A64_SFLOAT 3179*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 122 B10G11R11_UFLOAT_PACK32 3180*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 123 E5B9G9R9_UFLOAT_PACK32 3181*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 124 D16_UNORM 3182*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 125 X8_D24_UNORM_PACK32 3183*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 126 D32_SFLOAT 3184*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 127 S8_UINT 3185*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 128 D16_UNORM_S8_UINT 3186*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 129 D24_UNORM_S8_UINT 3187*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 130 D32_SFLOAT_S8_UINT 3188c990e5baSDaniel Fojt 3189*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 131 BC1_RGB_UNORM_BLOCK 3190*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 132 BC1_RGB_SRGB_BLOCK 3191*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 133 BC1_RGBA_UNORM_BLOCK 3192*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 134 BC1_RGBA_SRGB_BLOCK 3193*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 135 BC2_UNORM_BLOCK 3194*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 136 BC2_SRGB_BLOCK 3195*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 137 BC3_UNORM_BLOCK 3196*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 138 BC3_SRGB_BLOCK 3197*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 139 BC4_UNORM_BLOCK 3198*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 140 BC4_SNORM_BLOCK 3199*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 141 BC5_UNORM_BLOCK 3200*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 142 BC5_SNORM_BLOCK 3201*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 143 BC6H_UFLOAT_BLOCK 3202*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 144 BC6H_SFLOAT_BLOCK 3203*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 145 BC7_UNORM_BLOCK 3204*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 146 BC7_SRGB_BLOCK 3205c990e5baSDaniel Fojt 3206*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 147 ETC2_R8G8B8_UNORM_BLOCK 3207*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 148 ETC2_R8G8B8_SRGB_BLOCK 3208*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 149 ETC2_R8G8B8A1_UNORM_BLOCK 3209*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 150 ETC2_R8G8B8A1_SRGB_BLOCK 3210*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 151 ETC2_R8G8B8A8_UNORM_BLOCK 3211*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 152 ETC2_R8G8B8A8_SRGB_BLOCK 3212c990e5baSDaniel Fojt 3213*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 153 EAC_R11_UNORM_BLOCK 3214*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 154 EAC_R11_SNORM_BLOCK 3215*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 155 EAC_R11G11_UNORM_BLOCK 3216*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 156 EAC_R11G11_SNORM_BLOCK 3217c990e5baSDaniel Fojt 3218*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 157 ASTC_4x4_UNORM_BLOCK 3219*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 158 ASTC_4x4_SRGB_BLOCK 3220*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 159 ASTC_5x4_UNORM_BLOCK 3221*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 160 ASTC_5x4_SRGB_BLOCK 3222*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 161 ASTC_5x5_UNORM_BLOCK 3223*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 162 ASTC_5x5_SRGB_BLOCK 3224*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 163 ASTC_6x5_UNORM_BLOCK 3225*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 164 ASTC_6x5_SRGB_BLOCK 3226*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 165 ASTC_6x6_UNORM_BLOCK 3227*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 166 ASTC_6x6_SRGB_BLOCK 3228*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 167 ASTC_8x5_UNORM_BLOCK 3229*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 168 ASTC_8x5_SRGB_BLOCK 3230*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 169 ASTC_8x6_UNORM_BLOCK 3231*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 170 ASTC_8x6_SRGB_BLOCK 3232*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 171 ASTC_8x8_UNORM_BLOCK 3233*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 172 ASTC_8x8_SRGB_BLOCK 3234*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 173 ASTC_10x5_UNORM_BLOCK 3235*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 174 ASTC_10x5_SRGB_BLOCK 3236*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 175 ASTC_10x6_UNORM_BLOCK 3237*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 176 ASTC_10x6_SRGB_BLOCK 3238*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 177 ASTC_10x8_UNORM_BLOCK 3239*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 178 ASTC_10x8_SRGB_BLOCK 3240*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 179 ASTC_10x10_UNORM_BLOCK 3241*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 180 ASTC_10x10_SRGB_BLOCK 3242*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 181 ASTC_12x10_UNORM_BLOCK 3243*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 182 ASTC_12x10_SRGB_BLOCK 3244*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 183 ASTC_12x12_UNORM_BLOCK 3245*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 184 ASTC_12x12_SRGB_BLOCK 3246c990e5baSDaniel Fojt 3247*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156000 G8B8G8R8_422_UNORM 3248*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156001 B8G8R8G8_422_UNORM 3249*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156002 G8_B8_R8_3PLANE_420_UNORM 3250*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156003 G8_B8R8_2PLANE_420_UNORM 3251*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156004 G8_B8_R8_3PLANE_422_UNORM 3252*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156005 G8_B8R8_2PLANE_422_UNORM 3253*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156006 G8_B8_R8_3PLANE_444_UNORM 3254*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156007 R10X6_UNORM_PACK16 3255*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156008 R10X6G10X6_UNORM_2PACK16 3256*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156009 R10X6G10X6B10X6A10X6_UNORM_4PACK16 3257*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156010 G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 3258*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156011 B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 3259*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156012 G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 3260*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156013 G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 3261*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156014 G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 3262*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156015 G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 3263*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156016 G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 3264*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156017 R12X4_UNORM_PACK16 3265*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156018 R12X4G12X4_UNORM_2PACK16 3266*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156019 R12X4G12X4B12X4A12X4_UNORM_4PACK16 3267*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156020 G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 3268*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156021 B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 3269*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156022 G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 3270*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156023 G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 3271*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156024 G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 3272*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156025 G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 3273*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156026 G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 3274*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156027 G16B16G16R16_422_UNORM 3275*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156028 B16G16R16G16_422_UNORM 3276*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156029 G16_B16_R16_3PLANE_420_UNORM 3277*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156030 G16_B16R16_2PLANE_420_UNORM 3278*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156031 G16_B16_R16_3PLANE_422_UNORM 3279*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156032 G16_B16R16_2PLANE_422_UNORM 3280*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000156033 G16_B16_R16_3PLANE_444_UNORM 3281c990e5baSDaniel Fojt 3282*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054000 PVRTC1_2BPP_UNORM_BLOCK_IMG 3283*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054001 PVRTC1_4BPP_UNORM_BLOCK_IMG 3284*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054002 PVRTC2_2BPP_UNORM_BLOCK_IMG 3285*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054003 PVRTC2_4BPP_UNORM_BLOCK_IMG 3286*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054004 PVRTC1_2BPP_SRGB_BLOCK_IMG 3287*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054005 PVRTC1_4BPP_SRGB_BLOCK_IMG 3288*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054006 PVRTC2_2BPP_SRGB_BLOCK_IMG 3289*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000054007 PVRTC2_4BPP_SRGB_BLOCK_IMG 3290c990e5baSDaniel Fojt 3291*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066000 ASTC_4x4_SFLOAT_BLOCK_EXT 3292*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066001 ASTC_5x4_SFLOAT_BLOCK_EXT 3293*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066002 ASTC_5x5_SFLOAT_BLOCK_EXT 3294*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066003 ASTC_6x5_SFLOAT_BLOCK_EXT 3295*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066004 ASTC_6x6_SFLOAT_BLOCK_EXT 3296*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066005 ASTC_8x5_SFLOAT_BLOCK_EXT 3297*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066006 ASTC_8x6_SFLOAT_BLOCK_EXT 3298*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066007 ASTC_8x8_SFLOAT_BLOCK_EXT 3299*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066008 ASTC_10x5_SFLOAT_BLOCK_EXT 3300*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066009 ASTC_10x6_SFLOAT_BLOCK_EXT 3301*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066010 ASTC_10x8_SFLOAT_BLOCK_EXT 3302*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066011 ASTC_10x10_SFLOAT_BLOCK_EXT 3303*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066012 ASTC_12x10_SFLOAT_BLOCK_EXT 3304*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1000066013 ASTC_12x12_SFLOAT_BLOCK_EXT 3305c990e5baSDaniel Fojt 3306c990e5baSDaniel Fojt# Main KTX2 header. 3307c990e5baSDaniel Fojt0 string \xABKTX\ 20\xBB\r\n\x1A\n Khronos KTX2 texture 3308*3b9cdfa3SAntonio Huete Jimenez>20 ulelong x \b, %u 3309*3b9cdfa3SAntonio Huete Jimenez>24 ulelong >1 x %u 3310*3b9cdfa3SAntonio Huete Jimenez>28 ulelong >1 x %u 3311*3b9cdfa3SAntonio Huete Jimenez>32 ulelong >1 \b, %u layers 3312*3b9cdfa3SAntonio Huete Jimenez>36 ulelong >1 \b, %u faces 3313*3b9cdfa3SAntonio Huete Jimenez>40 ulelong >1 \b, %u mipmaps 3314*3b9cdfa3SAntonio Huete Jimenez>44 ulelong >0 \b, 3315c990e5baSDaniel Fojt>>44 use khronos-ktx2-supercompression 3316*3b9cdfa3SAntonio Huete Jimenez>12 ulelong >0 \b, 3317c990e5baSDaniel Fojt>>12 use khronos-ktx2-vkFormat 3318c990e5baSDaniel Fojt 33196fca56fbSSascha Wildner# Type: Valve VTF texture. 33206fca56fbSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 33216fca56fbSSascha Wildner# References: 33226fca56fbSSascha Wildner# - https://developer.valvesoftware.com/wiki/Valve_Texture_Format 33236fca56fbSSascha Wildner 33246fca56fbSSascha Wildner# VTF image formats. 33256fca56fbSSascha Wildner0 name vtf-image-format 3326*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 0 RGBA8888 3327*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 1 ABGR8888 3328*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 2 RGB888 3329*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 3 BGR888 3330*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 4 RGB565 3331*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 5 I8 3332*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 6 IA88 3333*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 7 P8 3334*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 8 A8 3335*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 9 RGB888 (bluescreen) 3336*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 10 BGR888 (bluescreen) 3337*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 11 ARGB8888 3338*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 12 BGRA8888 3339*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 13 DXT1 3340*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 14 DXT3 3341*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 15 DXT5 3342*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 16 BGRx8888 3343*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 17 BGR565 3344*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 18 BGRx5551 3345*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 19 BGRA4444 3346*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 20 DXT1+A1 3347*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 21 BGRA5551 3348*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 22 UV88 3349*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 23 UVWQ8888 3350*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 24 RGBA16161616F 3351*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 25 RGBA16161616 3352*3b9cdfa3SAntonio Huete Jimenez>0 ulelong 26 UVLX8888 33536fca56fbSSascha Wildner 33546fca56fbSSascha Wildner# Main VTF header. 33556fca56fbSSascha Wildner0 string VTF\0 Valve Texture Format 3356*3b9cdfa3SAntonio Huete Jimenez>4 ulelong x v%u 3357*3b9cdfa3SAntonio Huete Jimenez>8 ulelong x \b.%u 3358*3b9cdfa3SAntonio Huete Jimenez>0x10 uleshort x \b, %u 3359*3b9cdfa3SAntonio Huete Jimenez>0x12 uleshort >1 x %u 33606fca56fbSSascha Wildner>4 lequad 0x0000000700000002 3361*3b9cdfa3SAntonio Huete Jimenez>>0x3F uleshort >1 x %u 3362*3b9cdfa3SAntonio Huete Jimenez>0x18 uleshort >1 \b, %u frames 3363*3b9cdfa3SAntonio Huete Jimenez>0x38 ubyte x \b, mipmaps: %u 3364*3b9cdfa3SAntonio Huete Jimenez>0x34 ulelong >-1 \b, 33656fca56fbSSascha Wildner>>0x34 use vtf-image-format 33666fca56fbSSascha Wildner 33676fca56fbSSascha Wildner# Type: Valve VTF3 (PS3) texture. 33686fca56fbSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 33696fca56fbSSascha Wildner0 string VTF3 Valve Texture Format (PS3) 3370*3b9cdfa3SAntonio Huete Jimenez>0x14 ubeshort x \b, %u 3371*3b9cdfa3SAntonio Huete Jimenez>0x16 ubeshort x \b x %u 3372*3b9cdfa3SAntonio Huete Jimenez>0x10 ubelong&0x2000 0 \b, DXT1 3373*3b9cdfa3SAntonio Huete Jimenez>0x10 ubelong&0x2000 0x2000 \b, DXT5 33746fca56fbSSascha Wildner 33756fca56fbSSascha Wildner# Type: ASTC texture. 33766fca56fbSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 33776fca56fbSSascha Wildner# References: 33786fca56fbSSascha Wildner# - https://stackoverflow.com/questions/22600678/determine-internal-format-of-given-astc-compressed-image-through-its-header 33796fca56fbSSascha Wildner# - https://stackoverflow.com/a/22682244 3380*3b9cdfa3SAntonio Huete Jimenez0 ulelong 0x5ca1ab13 ASTC 3381*3b9cdfa3SAntonio Huete Jimenez>4 ubyte x %u 3382*3b9cdfa3SAntonio Huete Jimenez>5 ubyte x \bx%u 3383*3b9cdfa3SAntonio Huete Jimenez>6 ubyte >1 \bx%u 33846fca56fbSSascha Wildner# X, Y, and Z dimensions are stored as 24-bit LE. 33856fca56fbSSascha Wildner# Pretend it's 32-bit and mask off the high byte. 3386*3b9cdfa3SAntonio Huete Jimenez>7 ulelong&0x00FFFFFF x texture, %u 3387*3b9cdfa3SAntonio Huete Jimenez>10 ulelong&0x00FFFFFF x x %u 3388*3b9cdfa3SAntonio Huete Jimenez>13 ulelong&0x00FFFFFF >1 x %u 33896fca56fbSSascha Wildner 33906fca56fbSSascha Wildner# Zebra Metafile graphic 33916fca56fbSSascha Wildner# http://www.fileformat.info/format/zbr/egff.htm 3392*3b9cdfa3SAntonio Huete Jimenez0 ubeshort 0x9a02 Zebra Metafile graphic 3393*3b9cdfa3SAntonio Huete Jimenez>2 uleshort 1 (version 1.x) 3394*3b9cdfa3SAntonio Huete Jimenez>2 uleshort 2 (version 1.1x or 1.2x) 3395*3b9cdfa3SAntonio Huete Jimenez>2 uleshort 3 (version 1.49) 3396*3b9cdfa3SAntonio Huete Jimenez>2 uleshort 4 (version 1.50) 33976fca56fbSSascha Wildner>4 string x (comment = %s) 33986fca56fbSSascha Wildner 33996fca56fbSSascha Wildner# Microsoft Paint graphic 34006fca56fbSSascha Wildner# http://www.fileformat.info/format/mspaint/egff.htm 34016fca56fbSSascha Wildner0 string DanM icrosoft Paint image data (version 1.x) 3402*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x (%d 3403*3b9cdfa3SAntonio Huete Jimenez>>6 uleshort x x %d) 34046fca56fbSSascha Wildner0 string LinS Microsoft Paint image data (version 2.0) 3405*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x (%d 3406*3b9cdfa3SAntonio Huete Jimenez>>6 uleshort x x %d) 34076fca56fbSSascha Wildner 34086fca56fbSSascha Wildner# reMarkable tablet internal file format (https://www.remarkable.com/) 34096fca56fbSSascha Wildner# https://github.com/ax3l/lines-are-beautiful 34106fca56fbSSascha Wildner# https://plasma.ninja/blog/devices/remarkable/binary/format/2017/12/26/\ 34116fca56fbSSascha Wildner# reMarkable-lines-file-format.html#what-to-do-next 34126fca56fbSSascha Wildner# from Axel Huebl 34136fca56fbSSascha Wildner0 string reMarkable 34146fca56fbSSascha Wildner>11 string lines 34156fca56fbSSascha Wildner>>17 string with 34166fca56fbSSascha Wildner>>>22 string selections 34176fca56fbSSascha Wildner>>>>33 string and 34186fca56fbSSascha Wildner>>>>>37 string layers 3419*3b9cdfa3SAntonio Huete Jimenez>>>>>>43 ulelong x reMarkable tablet notebook lines, 1404 x 1872, %x page(s) 34206fca56fbSSascha Wildner 34216fca56fbSSascha Wildner# newer per-page files for the reMarkable 34226fca56fbSSascha Wildner0 string reMarkable 34236fca56fbSSascha Wildner>11 string .lines 34246fca56fbSSascha Wildner>>18 string file, 34256fca56fbSSascha Wildner>>>24 string version= 3426*3b9cdfa3SAntonio Huete Jimenez>>>>32 ubyte x reMarkable tablet page (v%c), 1404 x 1872, 3427*3b9cdfa3SAntonio Huete Jimenez>>>>>43 ulelong x %d layer(s) 34286fca56fbSSascha Wildner 34296fca56fbSSascha Wildner# Type: PVR3 texture. 34306fca56fbSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 34316fca56fbSSascha Wildner# References: 34326fca56fbSSascha Wildner# - http://cdn.imgtec.com/sdk-documentation/PVR+File+Format.Specification.pdf 34336fca56fbSSascha Wildner 34346fca56fbSSascha Wildner# PVR3 pixel formats. 34356fca56fbSSascha Wildner0 name pvr3-pixel-format 3436c990e5baSDaniel Fojt>0 ulelong 0 PVRTC 2bpp RGB 3437c990e5baSDaniel Fojt>0 ulelong 1 PVRTC 2bpp RGBA 3438c990e5baSDaniel Fojt>0 ulelong 2 PVRTC 4bpp RGB 3439c990e5baSDaniel Fojt>0 ulelong 3 PVRTC 4bpp RGBA 3440c990e5baSDaniel Fojt>0 ulelong 4 PVRTC-II 2bpp 3441c990e5baSDaniel Fojt>0 ulelong 5 PVRTC-II 4bpp 3442c990e5baSDaniel Fojt>0 ulelong 6 ETC1 3443c990e5baSDaniel Fojt>0 ulelong 7 DXT1 3444c990e5baSDaniel Fojt>0 ulelong 8 DXT2 3445c990e5baSDaniel Fojt>0 ulelong 9 DXT3 3446c990e5baSDaniel Fojt>0 ulelong 10 DXT4 3447c990e5baSDaniel Fojt>0 ulelong 11 DXT5 3448c990e5baSDaniel Fojt>0 ulelong 12 BC4 3449c990e5baSDaniel Fojt>0 ulelong 13 BC5 3450c990e5baSDaniel Fojt>0 ulelong 14 BC6 3451c990e5baSDaniel Fojt>0 ulelong 15 BC7 3452c990e5baSDaniel Fojt>0 ulelong 16 UYVY 3453c990e5baSDaniel Fojt>0 ulelong 17 YUY2 3454c990e5baSDaniel Fojt>0 ulelong 18 BW1bpp 3455c990e5baSDaniel Fojt>0 ulelong 19 R9G9B9E5 Shared Exponent 3456c990e5baSDaniel Fojt>0 ulelong 20 RGBG8888 3457c990e5baSDaniel Fojt>0 ulelong 21 GRGB8888 3458c990e5baSDaniel Fojt>0 ulelong 22 ETC2 RGB 3459c990e5baSDaniel Fojt>0 ulelong 23 ETC2 RGBA 3460c990e5baSDaniel Fojt>0 ulelong 24 ETC2 RGB A1 3461c990e5baSDaniel Fojt>0 ulelong 25 EAC R11 3462c990e5baSDaniel Fojt>0 ulelong 26 EAC RG11 3463c990e5baSDaniel Fojt>0 ulelong 27 ASTC_4x4 3464c990e5baSDaniel Fojt>0 ulelong 28 ASTC_5x4 3465c990e5baSDaniel Fojt>0 ulelong 29 ASTC_5x5 3466c990e5baSDaniel Fojt>0 ulelong 30 ASTC_6x5 3467c990e5baSDaniel Fojt>0 ulelong 31 ASTC_6x6 3468c990e5baSDaniel Fojt>0 ulelong 32 ASTC_8x5 3469c990e5baSDaniel Fojt>0 ulelong 33 ASTC_8x6 3470c990e5baSDaniel Fojt>0 ulelong 34 ASTC_8x8 3471c990e5baSDaniel Fojt>0 ulelong 35 ASTC_10x5 3472c990e5baSDaniel Fojt>0 ulelong 36 ASTC_10x6 3473c990e5baSDaniel Fojt>0 ulelong 37 ASTC_10x8 3474c990e5baSDaniel Fojt>0 ulelong 38 ASTC_10x10 3475c990e5baSDaniel Fojt>0 ulelong 39 ASTC_12x10 3476c990e5baSDaniel Fojt>0 ulelong 40 ASTC_12x12 3477c990e5baSDaniel Fojt>0 ulelong 41 ASTC_3x3x3 3478c990e5baSDaniel Fojt>0 ulelong 42 ASTC_4x3x3 3479c990e5baSDaniel Fojt>0 ulelong 43 ASTC_4x4x3 3480c990e5baSDaniel Fojt>0 ulelong 44 ASTC_4x4x4 3481c990e5baSDaniel Fojt>0 ulelong 45 ASTC_5x4x4 3482c990e5baSDaniel Fojt>0 ulelong 46 ASTC_5x5x4 3483c990e5baSDaniel Fojt>0 ulelong 47 ASTC_5x5x5 3484c990e5baSDaniel Fojt>0 ulelong 48 ASTC_6x5x5 3485c990e5baSDaniel Fojt>0 ulelong 49 ASTC_6x6x5 3486c990e5baSDaniel Fojt>0 ulelong 50 ASTC_6x6x6 34876fca56fbSSascha Wildner 3488c990e5baSDaniel Fojt0 string PVR\x03 PowerVR 3.0 texture: 34896fca56fbSSascha Wildner>0x18 ulelong x %u x 34906fca56fbSSascha Wildner>0x1C ulelong x %u 34916fca56fbSSascha Wildner>0x20 ulelong >1 x %u 3492*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte x \b, 3493c990e5baSDaniel Fojt>0x0C ulelong 0 3494c990e5baSDaniel Fojt>>0x08 use pvr3-pixel-format 3495c990e5baSDaniel Fojt>0x0C ulelong !0 3496*3b9cdfa3SAntonio Huete Jimenez>>0x08 ubyte !0 %c 3497*3b9cdfa3SAntonio Huete Jimenez>>>0x0C ubyte !0 \b%u 3498*3b9cdfa3SAntonio Huete Jimenez>>0x09 ubyte !0 \b%c 3499*3b9cdfa3SAntonio Huete Jimenez>>>0x0D ubyte !0 \b%u 3500*3b9cdfa3SAntonio Huete Jimenez>>0x0A ubyte !0 \b%c 3501*3b9cdfa3SAntonio Huete Jimenez>>>0x0E ubyte !0 \b%u 3502*3b9cdfa3SAntonio Huete Jimenez>>0x0B ubyte !0 \b%c 3503*3b9cdfa3SAntonio Huete Jimenez>>>0x0F ubyte !0 \b%u 35046fca56fbSSascha Wildner>0x10 ulelong 1 \b, sRGB 35056fca56fbSSascha Wildner>0x04 ulelong&0x02 0x02 \b, premultiplied alpha 35066fca56fbSSascha Wildner 3507c990e5baSDaniel Fojt0 string \x03RVP PowerVR 3.0 texture: BE, 3508c990e5baSDaniel Fojt>0x18 ubelong x %u x 3509c990e5baSDaniel Fojt>0x1C ubelong x %u 3510c990e5baSDaniel Fojt>0x20 ubelong >1 x %u 3511*3b9cdfa3SAntonio Huete Jimenez>0x08 ubyte x \b, 3512c990e5baSDaniel Fojt>0x0C ubelong 0 3513c990e5baSDaniel Fojt>>0x08 use pvr3-pixel-format 3514c990e5baSDaniel Fojt>0x0C ubelong !0 3515*3b9cdfa3SAntonio Huete Jimenez>>0x0B ubyte !0 %c 3516*3b9cdfa3SAntonio Huete Jimenez>>>0x0F ubyte !0 \b%u 3517*3b9cdfa3SAntonio Huete Jimenez>>0x0A ubyte !0 \b%c 3518*3b9cdfa3SAntonio Huete Jimenez>>>0x0E ubyte !0 \b%u 3519*3b9cdfa3SAntonio Huete Jimenez>>0x09 ubyte !0 \b%c 3520*3b9cdfa3SAntonio Huete Jimenez>>>0x0D ubyte !0 \b%u 3521*3b9cdfa3SAntonio Huete Jimenez>>0x08 ubyte !0 \b%c 3522*3b9cdfa3SAntonio Huete Jimenez>>>0x0C ubyte !0 \b%u 3523c990e5baSDaniel Fojt>0x10 ubelong 1 \b, sRGB 3524c990e5baSDaniel Fojt>0x04 ubelong&0x02 0x02 \b, premultiplied alpha 3525c990e5baSDaniel Fojt 35266fca56fbSSascha Wildner# Type: Microsoft Xbox XPR0 texture. 35276fca56fbSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 35286fca56fbSSascha Wildner# References: 35296fca56fbSSascha Wildner# - https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/blob/develop/src/core/hle/D3D8/XbD3D8Types.h 35306fca56fbSSascha Wildner 35316fca56fbSSascha Wildner# XPR pixel formats. 35326fca56fbSSascha Wildner0 name xbox-xpr-pixel-format 3533*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x00 L8 3534*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x01 AL8 3535*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x02 ARGB1555 3536*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x03 RGB555 3537*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x04 ARGB4444 3538*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x05 RGB565 3539*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x06 ARGB8888 3540*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x07 xRGB8888 3541*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x0B P8 3542*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x0C DXT1 3543*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x0E DXT2 3544*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x0F DXT4 3545*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x10 Linear ARGB1555 3546*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x11 Linear RGB565 3547*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x12 Linear ARGB8888 3548*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x13 Linear L8 3549*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x16 Linear R8B8 3550*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x17 Linear G8B8 3551*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x19 A8 3552*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x1A A8L8 3553*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x1B Linear AL8 3554*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x1C Linear RGB555 3555*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x1D Linear ARGB4444 3556*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x1E Linear xRGB8888 3557*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x1F Linear A8 3558*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x20 Linear A8L8 3559*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x24 YUY2 3560*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x25 UYVY 3561*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x27 L6V5U5 3562*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x28 V8U8 3563*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x29 R8B8 3564*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x2A D24S8 3565*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x2B F24S8 3566*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x2C D16 3567*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x2D F16 3568*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x2E Linear D24S8 3569*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x2F Linear F24S8 3570*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x30 Linear D16 3571*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x31 Linear F16 3572*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x32 L16 3573*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x33 V16U16 3574*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x35 Linear L16 3575*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x36 Linear V16U16 3576*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x37 Linear L6V5U5 3577*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x38 RGBA5551 3578*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x39 RGBA4444 3579*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x3A QWVU8888 3580*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x3B BGRA8888 3581*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x3C RGBA8888 3582*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x3D Linear RGBA5551 3583*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x3E Linear RGBA4444 3584*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x3F Linear ABGR8888 3585*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x40 Linear BGRA8888 3586*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x41 Linear RGBA8888 3587*3b9cdfa3SAntonio Huete Jimenez>0 ubyte 0x64 Vertex Data 35886fca56fbSSascha Wildner 35896fca56fbSSascha Wildner0 string XPR0 Microsoft Xbox XPR0 texture 3590*3b9cdfa3SAntonio Huete Jimenez>0x19 ubyte x \b, format: 35916fca56fbSSascha Wildner>>0x19 use xbox-xpr-pixel-format 35926fca56fbSSascha Wildner 35936fca56fbSSascha Wildner# ILDA Image Data Transfer Format 35946fca56fbSSascha Wildner# https://www.ilda.com/resources/StandardsDocs/ILDA_IDTF14_rev011.pdf 35956fca56fbSSascha Wildner# 35966fca56fbSSascha Wildner# Updated by Chuck Hein (laser@geekdude.com) 35976fca56fbSSascha Wildner# 35986fca56fbSSascha Wildner0 string ILDA ILDA Image Data Transfer Format 3599*3b9cdfa3SAntonio Huete Jimenez>7 ubyte 0x00 3D Coordinates with Indexed Color 3600*3b9cdfa3SAntonio Huete Jimenez>7 ubyte 0x01 2D Coordinates with Indexed Color 3601*3b9cdfa3SAntonio Huete Jimenez>7 ubyte 0x02 Color Palette 3602*3b9cdfa3SAntonio Huete Jimenez>7 ubyte 0x04 3D Coordinates with True Color 3603*3b9cdfa3SAntonio Huete Jimenez>7 ubyte 0x05 2D Coordinates with True Color 36046fca56fbSSascha Wildner>8 string >0 \b, palette %s 36056fca56fbSSascha Wildner>16 string >0 \b, company %s 3606*3b9cdfa3SAntonio Huete Jimenez>24 ubeshort >0 \b, number of records %d 3607*3b9cdfa3SAntonio Huete Jimenez>>26 ubeshort x \b, palette number %d 3608*3b9cdfa3SAntonio Huete Jimenez>>28 ubeshort >0 \b, number of frames %d 3609*3b9cdfa3SAntonio Huete Jimenez>>30 ubyte >0 \b, projector number %d 36106fca56fbSSascha Wildner 36116fca56fbSSascha Wildner# Dropbox "lepton" compressed jpeg format 36126fca56fbSSascha Wildner# https://github.com/dropbox/lepton 3613*3b9cdfa3SAntonio Huete Jimenez0 ubelong&0xfffff0ff 0xcf84005a Lepton image file 3614*3b9cdfa3SAntonio Huete Jimenez>2 ubyte x (version %d) 3615c990e5baSDaniel Fojt 3616c990e5baSDaniel Fojt# Apple QuickTake camera raw images 3617c990e5baSDaniel Fojt# https://en.wikipedia.org/wiki/Apple_QuickTake 3618c990e5baSDaniel Fojt# dcraw can decode them 3619c990e5baSDaniel Fojt0 name quicktake 3620*3b9cdfa3SAntonio Huete Jimenez>4 ubelong 8 3621*3b9cdfa3SAntonio Huete Jimenez>>544 ubeshort x \b, %dx 3622*3b9cdfa3SAntonio Huete Jimenez>>546 ubeshort x \b%d 3623*3b9cdfa3SAntonio Huete Jimenez>4 ubelong 4 3624*3b9cdfa3SAntonio Huete Jimenez>>546 ubeshort x \b, %dx 3625*3b9cdfa3SAntonio Huete Jimenez>>544 ubeshort x \b%d 3626c990e5baSDaniel Fojt 3627c990e5baSDaniel Fojt0 string qktk Apple QuickTake 100 Raw Image 3628c990e5baSDaniel Fojt>0 use quicktake 3629c990e5baSDaniel Fojt 3630c990e5baSDaniel Fojt0 string qktn 3631*3b9cdfa3SAntonio Huete Jimenez>4 ubyte 0 Apple QuickTake 150 Raw Image 3632*3b9cdfa3SAntonio Huete Jimenez>4 ubyte >0 Apple QuickTake 200 Raw Image 3633c990e5baSDaniel Fojt>0 use quicktake 3634970935fdSSascha Wildner 3635970935fdSSascha Wildner# From: Joerg Jenderek 3636970935fdSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/Corel_Photo-Paint_image 3637970935fdSSascha Wildner# Reference: http://blog.argasinski.eu/wp-content/uploads/2011/08/cpt-specification-0.01.pdf 3638970935fdSSascha Wildner0 string CPT 3639970935fdSSascha Wildner>4 string FILE Corel Photo-Paint image, version 3640970935fdSSascha Wildner# version like 7, 9 or 8 3641970935fdSSascha Wildner>>3 ubyte x %c, 3642970935fdSSascha Wildner!:mime image/x-corel-cpt 3643970935fdSSascha Wildner!:ext cpt 3644970935fdSSascha Wildner# if blocks_array_offset available jump blockNumber*8 bytes 3645970935fdSSascha Wildner>>0x34 ulelong >0 3646970935fdSSascha Wildner>>>(0x28.l*8) ubyte x 3647970935fdSSascha Wildner# jump additional stored blocks_array_offset bytes forward to object block 3648970935fdSSascha Wildner>>>>&(0x34.l-1) ulelong x %u 3649970935fdSSascha Wildner# object height in pixels 3650970935fdSSascha Wildner>>>>>&0 ulelong x x %u 3651970935fdSSascha Wildner# if no blocks_array_offset available jump blockNumber*8 bytes 3652970935fdSSascha Wildner>>0x34 ulelong =0 3653970935fdSSascha Wildner>>>(0x28.l*8) ubyte x 3654970935fdSSascha Wildner# jump additional 0x13C bytes forward to object block 3655970935fdSSascha Wildner>>>>&0x13B ulelong x %u 3656970935fdSSascha Wildner>>>>>&0 ulelong x x %u 3657970935fdSSascha Wildner# image color model used 3658970935fdSSascha Wildner>>0x8 ulelong x 3659970935fdSSascha Wildner>>>0x8 ulelong 0x1 RGB 24 bits 3660970935fdSSascha Wildner>>>0x8 ulelong 0x3 CMYK 24 bits 3661970935fdSSascha Wildner>>>0x8 ulelong 0x5 greyscale 8 bits 3662970935fdSSascha Wildner>>>0x8 ulelong 0x6 black and white 1 bit 3663970935fdSSascha Wildner>>>0x8 ulelong 0xA RGB 8 bits 3664970935fdSSascha Wildner# palette_length number of colors * 3 in case of 8-bit RGB paletted image 3665970935fdSSascha Wildner# 0 otherwise. Allowed values: 0 or [1..256] * 3 3666970935fdSSascha Wildner#>>0xC ulelong >0 \b, palette length %u 3667970935fdSSascha Wildner>>>>0xC ulelong/3 <256 \b, %u colors 3668970935fdSSascha Wildner>>>0x8 ulelong 0xB LAB 3669970935fdSSascha Wildner>>>0x8 ulelong 0xC RGB 48 bits 3670970935fdSSascha Wildner>>>0x8 ulelong 0xE greyscale 16 bits 3671970935fdSSascha Wildner# this should not happen 3672970935fdSSascha Wildner>>>0x8 default x color model 3673614728caSSascha Wildner>>>>0x8 ulelong x %#x 3674970935fdSSascha Wildner# bit 1 in CPT file flags: UCS-2 file comment present 3675970935fdSSascha Wildner>>0x31 ubyte &0x02 3676970935fdSSascha Wildner# look for comment marker 3677970935fdSSascha Wildner>>>0x100 search/0xc9d \4\2\0\0 3678970935fdSSascha Wildner# UCS-2 file comment 3679970935fdSSascha Wildner>>>>&0 lestring16 x "%s" 3680970935fdSSascha Wildner# if no UCS-2 is present show ANSI file comment[112] if available 3681970935fdSSascha Wildner>>0x31 ubyte&0x02 =0 3682970935fdSSascha Wildner>>>0x3C string >\0 "%-.112s" 3683970935fdSSascha Wildner# reserved seems to be always 0 3684970935fdSSascha Wildner#>>0x10 ulelong >0 \b, reserved1 %u 3685970935fdSSascha Wildner# horizontal real dpi = dpi_h * 25.4 / 10**6 3686970935fdSSascha Wildner>>0x18 ulelong x \b, %u micro dots/mm 3687970935fdSSascha Wildner# image vertical DPI in CPT DPI unit 3688970935fdSSascha Wildner#>>0x1C ulelong x \b, %u micro dots/mm 3689970935fdSSascha Wildner# reserved seems to be always 0 3690970935fdSSascha Wildner#>>0x20 ulelong >0 \b, reserved2 %u 3691970935fdSSascha Wildner#>>0x24 ulelong >0 \b, reserved3 %u 3692970935fdSSascha Wildner# blocks_count; number of CPT_Block blocks. Allowed values: > 0 3693970935fdSSascha Wildner>>0x28 ulelong x \b, %u block 3694970935fdSSascha Wildner# plural s 3695970935fdSSascha Wildner>>0x28 ulelong !1 \bs 3696970935fdSSascha Wildner# CPT file flags 3697970935fdSSascha Wildner# lower byte of CPT file flags: 0x94~CPT9FILE 0x01~often CPT7FILE 0x8C~CPT8FILE 3698614728caSSascha Wildner#>>0x30 ubyte x \b, lower flags %#x 3699970935fdSSascha Wildner# upper byte of CPT file flags: 3700614728caSSascha Wildner#>>0x31 ubyte >0 \b, upper flags %#x 3701970935fdSSascha Wildner# bit 2 in CPT file flags: unknown 3702970935fdSSascha Wildner#>>0x31 ubyte &0x04 \b, with UNKNOWN 3703970935fdSSascha Wildner# bits 3-7 in CPT file flags: unknown, seem to be often 0 3704970935fdSSascha Wildner# show unusual flag combinations 3705970935fdSSascha Wildner>>0x31 ubyte&0xFC >0 3706614728caSSascha Wildner>>>0x30 uleshort x \b, flags %#4.4x 3707970935fdSSascha Wildner# reserved seems to be always 0 3708614728caSSascha Wildner#>>0x32 uleshort >0 \b, reserved4 %#x 3709970935fdSSascha Wildner# blocks_array_offset is always 0 for CPT7 and CPT8 files created by PP7-PP8 3710970935fdSSascha Wildner# typical values like: 13Ch 154h 43Ch 4F0h DA8h 3711614728caSSascha Wildner>>0x34 ulelong x \b, array offset %#x 3712970935fdSSascha Wildner# reserved seems to be often 0 3713614728caSSascha Wildner>>0x38 ulelong >0 \b, reserved5 %#x 3714970935fdSSascha Wildner# possible next master block 3715614728caSSascha Wildner#>>0x100 ubequad !0 \b, next block=%#llx... 3716970935fdSSascha Wildner# bit 0: ICC profile block present 3717970935fdSSascha Wildner>>0x31 ubyte &0x01 \b, with ICC profile 3718970935fdSSascha Wildner# check for characteristic string acsp of color profile for DEBUGGING 3719970935fdSSascha Wildner#>>>0x178 string x icc=%.4s 3720970935fdSSascha Wildner# display ICC/ICM color profile by ./icc 3721970935fdSSascha Wildner#>>>0x154 use color-profile 3722970935fdSSascha Wildner 3723970935fdSSascha Wildner# Type: Crunch compressed texture. 3724970935fdSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 3725970935fdSSascha Wildner# References: 3726970935fdSSascha Wildner# - https://github.com/BinomialLLC/crunch/blob/44c8402e24441c7524ca364941fd224ab3b971e9/inc/crn_decomp.h#L267 3727970935fdSSascha Wildner0 ubelong 0x4878004A Crunch compressed texture: 3728970935fdSSascha Wildner>0x0C ubeshort x %u x 3729970935fdSSascha Wildner>0x0E ubeshort x %u 3730970935fdSSascha Wildner>0x12 ubyte 0 \b, DXT1 3731970935fdSSascha Wildner>0x12 ubyte 1 \b, DXT3 3732970935fdSSascha Wildner>0x12 ubyte 2 \b, DXT5 3733970935fdSSascha Wildner>0x12 ubyte 3 \b, DXT5 CCxY 3734970935fdSSascha Wildner>0x12 ubyte 4 \b, DXT5 xGxR 3735970935fdSSascha Wildner>0x12 ubyte 5 \b, DXT5 xGBR 3736970935fdSSascha Wildner>0x12 ubyte 6 \b, DXT5 AGBR 3737970935fdSSascha Wildner>0x12 ubyte 7 \b, DXn XY 3738970935fdSSascha Wildner>0x12 ubyte 8 \b, DXn YX 3739970935fdSSascha Wildner>0x12 ubyte 9 \b, DXT5 Alpha 3740970935fdSSascha Wildner>0x12 ubyte 10 \b, ETC1 3741970935fdSSascha Wildner>0x10 ubyte >1 \b, %u images 3742970935fdSSascha Wildner>0x11 ubyte >1 \b, %u faces 3743970935fdSSascha Wildner# TODO: Flags at 0x13? (ubeshort) 3744970935fdSSascha Wildner 3745970935fdSSascha Wildner# Type: BasisLZ compressed texture. 3746970935fdSSascha Wildner# From: David Korth <gerbilsoft@gerbilsoft.com> 3747970935fdSSascha Wildner# References: 3748970935fdSSascha Wildner# - https://github.com/BinomialLLC/basis_universal/blob/master/spec/basis_spec.txt 3749970935fdSSascha Wildner0 uleshort 0x4273 3750970935fdSSascha Wildner>0x04 uleshort 0x4D BasisLZ 3751970935fdSSascha Wildner>>0x02 uleshort x v%x compressed texture: 3752970935fdSSascha Wildner>>0x14 ubyte 0 ETC1S 3753970935fdSSascha Wildner>>0x14 ubyte 1 UASTC 4x4 3754970935fdSSascha Wildner>>0x0E ulelong&0xFFFFFF >1 \b, %u slices 3755970935fdSSascha Wildner>>0x11 ulelong&0xFFFFFF >1 \b, %u images 3756970935fdSSascha Wildner>>0x15 uleshort&0x02 2 \b, Y-flipped 3757970935fdSSascha Wildner 3758970935fdSSascha Wildner# MIME registration: https://www.iana.org/assignments/media-types/model/e57 3759970935fdSSascha Wildner# Sample files: http://www.libe57.org/data.html 3760970935fdSSascha Wildner# Reference implementation: http://www.libe57.org/ 3761970935fdSSascha Wildner# https://www.ri.cmu.edu/pub_files/2011/1/2011-huber-e57-v3.pdf 3762970935fdSSascha Wildner0 string ASTM-E57 ASTM E57 three-dimensional model 3763970935fdSSascha Wildner!:mime model/e57 3764970935fdSSascha Wildner!:ext e57 3765*3b9cdfa3SAntonio Huete Jimenez 3766*3b9cdfa3SAntonio Huete Jimenez# QOI [Quite OK Image Format] images 3767*3b9cdfa3SAntonio Huete Jimenez# (Horia Mihai David, mihaidavid@posteo.net) 3768*3b9cdfa3SAntonio Huete Jimenez# 3769*3b9cdfa3SAntonio Huete Jimenez# QOI format by Dominic Szablewski <http://phoboslab.org/> 3770*3b9cdfa3SAntonio Huete Jimenez# <https://qoiformat.org/> 3771*3b9cdfa3SAntonio Huete Jimenez# 3772*3b9cdfa3SAntonio Huete Jimenez# Based on spec v1.0 (2022.01.05) <https://qoiformat.org/qoi-specification.pdf> 3773*3b9cdfa3SAntonio Huete Jimenez 3774*3b9cdfa3SAntonio Huete Jimenez0 string qoif QOI image data 3775*3b9cdfa3SAntonio Huete Jimenez!:ext qoi 3776*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-qoi 3777*3b9cdfa3SAntonio Huete Jimenez# See <https://github.com/phoboslab/qoi/issues/167> 3778*3b9cdfa3SAntonio Huete Jimenez>4 ubelong x %ux 3779*3b9cdfa3SAntonio Huete Jimenez>8 ubelong x \b%u, 3780*3b9cdfa3SAntonio Huete Jimenez>>13 ubyte 0 s 3781*3b9cdfa3SAntonio Huete Jimenez>>>12 ubyte 3 \bRGB 3782*3b9cdfa3SAntonio Huete Jimenez>>>12 ubyte 4 \bRGBA 3783*3b9cdfa3SAntonio Huete Jimenez>>>12 default x 3784*3b9cdfa3SAntonio Huete Jimenez>>>>12 ubyte x \b*bad channels %u* 3785*3b9cdfa3SAntonio Huete Jimenez>>>13 ubyte 0 (linear alpha) 3786*3b9cdfa3SAntonio Huete Jimenez>>13 ubyte 1 3787*3b9cdfa3SAntonio Huete Jimenez>>>12 ubyte 3 RGB 3788*3b9cdfa3SAntonio Huete Jimenez>>>12 ubyte 4 RGBA 3789*3b9cdfa3SAntonio Huete Jimenez>>>13 ubyte 1 (all channels linear) 3790*3b9cdfa3SAntonio Huete Jimenez>>13 default x 3791*3b9cdfa3SAntonio Huete Jimenez>>>13 ubyte x *bad colorspace %u* 3792*3b9cdfa3SAntonio Huete Jimenez 3793*3b9cdfa3SAntonio Huete Jimenez 3794*3b9cdfa3SAntonio Huete Jimenez# Type: Godot 3, 4 texture (pixel format) 3795*3b9cdfa3SAntonio Huete Jimenez# From: David Korth <gerbilsoft@gerbilsoft.com> 3796*3b9cdfa3SAntonio Huete Jimenez0 name godot-pixel-format 3797*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 0 L8 3798*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 1 LA8 3799*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 2 R8 3800*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 3 RG8 3801*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 4 RGB8 3802*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 5 RGBA8 3803*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 6 RGBA4444 3804*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 7 RGB565 3805*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 8 RF 3806*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 9 RGF 3807*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 10 RGBF 3808*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 11 RGBAF 3809*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 12 RH 3810*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 13 RGH 3811*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 14 RGBH 3812*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 15 RGBAH 3813*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 16 RGBE9995 3814*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 17 DXT1 3815*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 18 DXT3 3816*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 19 DXT5 3817*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 20 RGTC_R 3818*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 21 RGTC_RG 3819*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 22 BPTC_RGBA 3820*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 23 BPTC_RGBF 3821*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 24 BPTC_RGBFU 3822*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 25 PVRTC1_2 3823*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 26 PVRTC1_2A 3824*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 27 PVRTC1_4 3825*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 28 PVRTC1_4A 3826*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 29 ETC 3827*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 30 ETC2_R11 3828*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 31 ETC2_R11S 3829*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 32 ETC2_RG11 3830*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 33 ETC2_RG11S 3831*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 34 ETC2_RGB8 3832*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 35 ETC2_RGBA8 3833*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 36 ETC2_RGB8A1 3834*3b9cdfa3SAntonio Huete Jimenez>0 ulelong&0xFFFFF 37 ASTC_8x8 3835*3b9cdfa3SAntonio Huete Jimenez 3836*3b9cdfa3SAntonio Huete Jimenez# Type: Godot 3, 4 texture (rescale display, width) 3837*3b9cdfa3SAntonio Huete Jimenez# From: David Korth <gerbilsoft@gerbilsoft.com> 3838*3b9cdfa3SAntonio Huete Jimenez# Shows rescale value if it's not a power of 2. 3839*3b9cdfa3SAntonio Huete Jimenez0 name godot-rescale-display-w 3840*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0 3841*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 1 3842*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 2 3843*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 4 3844*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 8 3845*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 16 3846*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 32 3847*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 64 3848*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 128 3849*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 256 3850*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 512 3851*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 1024 3852*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 2048 3853*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 4096 3854*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 8192 3855*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 16384 3856*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 32768 3857*3b9cdfa3SAntonio Huete Jimenez>0 default x 3858*3b9cdfa3SAntonio Huete Jimenez>>0 uleshort x (rescale to %u x 3859*3b9cdfa3SAntonio Huete Jimenez 3860*3b9cdfa3SAntonio Huete Jimenez# Type: Godot 3, 4 texture (rescale display, height) 3861*3b9cdfa3SAntonio Huete Jimenez# From: David Korth <gerbilsoft@gerbilsoft.com> 3862*3b9cdfa3SAntonio Huete Jimenez# Shows rescale value if it's not a power of 2. 3863*3b9cdfa3SAntonio Huete Jimenez0 name godot-rescale-display-h 3864*3b9cdfa3SAntonio Huete Jimenez>0 clear x 3865*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 0 3866*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 1 3867*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 2 3868*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 4 3869*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 8 3870*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 16 3871*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 32 3872*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 64 3873*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 128 3874*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 256 3875*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 512 3876*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 1024 3877*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 2048 3878*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 4096 3879*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 8192 3880*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 16384 3881*3b9cdfa3SAntonio Huete Jimenez>0 uleshort 32768 3882*3b9cdfa3SAntonio Huete Jimenez>0 default x 3883*3b9cdfa3SAntonio Huete Jimenez>>0 uleshort x %u) 3884*3b9cdfa3SAntonio Huete Jimenez 3885*3b9cdfa3SAntonio Huete Jimenez# Type: Godot 3 texture 3886*3b9cdfa3SAntonio Huete Jimenez# From: David Korth <gerbilsoft@gerbilsoft.com> 3887*3b9cdfa3SAntonio Huete Jimenez# References: 3888*3b9cdfa3SAntonio Huete Jimenez# - https://github.com/godotengine/godot/blob/3.3/core/image.h 3889*3b9cdfa3SAntonio Huete Jimenez# - https://github.com/godotengine/godot/blob/3.3/scene/resources/texture.cpp 3890*3b9cdfa3SAntonio Huete Jimenez# - https://github.com/godotengine/godot/blob/3.3/scene/resources/texture.h 3891*3b9cdfa3SAntonio Huete Jimenez# TODO: Don't show "rescale to" if it matches the image size. 3892*3b9cdfa3SAntonio Huete Jimenez0 string GDST Godot 3 texture: 3893*3b9cdfa3SAntonio Huete Jimenez!:ext stex 3894*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-godot-stex 3895*3b9cdfa3SAntonio Huete Jimenez>4 uleshort x %u x 3896*3b9cdfa3SAntonio Huete Jimenez>8 uleshort x %u 3897*3b9cdfa3SAntonio Huete Jimenez>6 uleshort 0 \b, 3898*3b9cdfa3SAntonio Huete Jimenez>6 uleshort !0 3899*3b9cdfa3SAntonio Huete Jimenez>>6 use godot-rescale-display-w 3900*3b9cdfa3SAntonio Huete Jimenez>>10 use godot-rescale-display-h 3901*3b9cdfa3SAntonio Huete Jimenez>>10 uleshort x \b, 3902*3b9cdfa3SAntonio Huete Jimenez>16 ulelong&0x800000 !0 has mipmaps, 3903*3b9cdfa3SAntonio Huete Jimenez>16 ulelong&0x100000 0x100000 lossless encoding 3904*3b9cdfa3SAntonio Huete Jimenez>16 ulelong&0x200000 0x200000 lossy encoding 3905*3b9cdfa3SAntonio Huete Jimenez>16 ulelong&0x300000 0 3906*3b9cdfa3SAntonio Huete Jimenez>>16 use godot-pixel-format 3907*3b9cdfa3SAntonio Huete Jimenez 3908*3b9cdfa3SAntonio Huete Jimenez# Type: Godot 4 texture 3909*3b9cdfa3SAntonio Huete Jimenez# From: David Korth <gerbilsoft@gerbilsoft.com> 3910*3b9cdfa3SAntonio Huete Jimenez# References: 3911*3b9cdfa3SAntonio Huete Jimenez# - https://github.com/godotengine/godot/blob/master/core/io/image.h 3912*3b9cdfa3SAntonio Huete Jimenez# - https://github.com/godotengine/godot/blob/master/scene/resources/texture.cpp 3913*3b9cdfa3SAntonio Huete Jimenez# - https://github.com/godotengine/godot/blob/master/scene/resources/texture.h 3914*3b9cdfa3SAntonio Huete Jimenez# TODO: Don't show "rescale to" if it matches the image size. 3915*3b9cdfa3SAntonio Huete Jimenez0 string GST2 Godot 4 texture 3916*3b9cdfa3SAntonio Huete Jimenez!:ext stex 3917*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-godot-stex 3918*3b9cdfa3SAntonio Huete Jimenez>4 ulelong x v%u: 3919*3b9cdfa3SAntonio Huete Jimenez>0x28 uleshort x %u x 3920*3b9cdfa3SAntonio Huete Jimenez>0x2A uleshort x %u 3921*3b9cdfa3SAntonio Huete Jimenez>8 use godot-rescale-display-w 3922*3b9cdfa3SAntonio Huete Jimenez>12 use godot-rescale-display-h 3923*3b9cdfa3SAntonio Huete Jimenez>12 uleshort x \b, 3924*3b9cdfa3SAntonio Huete Jimenez>0x2C ulelong >1 %u mipmaps, 3925*3b9cdfa3SAntonio Huete Jimenez>0x30 use godot-pixel-format 3926*3b9cdfa3SAntonio Huete Jimenez>0x24 ulelong 1 \b, embedded PNG image 3927*3b9cdfa3SAntonio Huete Jimenez>0x24 ulelong 2 \b, embedded WebP image 3928*3b9cdfa3SAntonio Huete Jimenez>0x24 ulelong 3 \b, Basis Universal 3929*3b9cdfa3SAntonio Huete Jimenez 3930*3b9cdfa3SAntonio Huete Jimenez# Summary: iCEDraw graphic *.IDF 3931*3b9cdfa3SAntonio Huete Jimenez# URL: http://fileformats.archiveteam.org/wiki/ICEDraw 3932*3b9cdfa3SAntonio Huete Jimenez# Reference: http://mark0.net/download/triddefs_xml.7z/defs/i/idf-icedraw.trid.xml 3933*3b9cdfa3SAntonio Huete Jimenez# From: Joerg Jenderek 3934*3b9cdfa3SAntonio Huete Jimenez# Note: called "iCEDraw graphic" by TrID, "iCEDraw text" by FFmpeg and "iCE Draw" by Ansilove 3935*3b9cdfa3SAntonio Huete Jimenez# verified by FFmpeg command `ffprobe ICE-9605.IDF` and `ansilove -s SQ-FORCE.IDF` 3936*3b9cdfa3SAntonio Huete Jimenez0 string \0041.4\0\0\0\0O\0 iCEDraw graphic 3937*3b9cdfa3SAntonio Huete Jimenez#!:mime application/octet-stream 3938*3b9cdfa3SAntonio Huete Jimenez!:mime image/x-idf 3939*3b9cdfa3SAntonio Huete Jimenez!:ext idf 3940