{"id":"image-x-tiff","mimeType":"image/x-tiff","name":"Tagged Image File Format (Legacy MIME)","shortName":"TIFF","category":"Raster Graphics \u0026 Publishing","extensions":[".tiff",".tif"],"description":"The image/x-tiff MIME type is a legacy, non-standard alias for the Tagged Image File Format (TIFF). While the official IANA standard is 'image/tiff', the 'x-tiff' variation was historically used by older web browsers, legacy scanning software, and early email clients before MIME standardization was strictly enforced. The underlying file is identical to a standard TIFF—a highly flexible, complex container format widely used in professional photography, desktop publishing, and document scanning. It supports multiple layers, rich metadata (EXIF, IPTC, XMP), deep color precision (up to 32-bit float per channel), and various compression algorithms (LZW, ZIP, PackBits, or uncompressed).","seo":{"title":"image/x-tiff MIME Type | Developer Reference for Legacy TIFFs","description":"Complete reference for the image/x-tiff MIME type: legacy TIFF uploads, Tagged Image File Format, file detection, and backend MIME normalization.","faqs":[{"question":"What is the difference between image/tiff and image/x-tiff?","answer":"There is no difference in the actual image file structure. 'image/tiff' is the officially registered IANA MIME type. 'image/x-tiff' is an older, experimental or vendor-specific designation often sent by legacy software or old web browsers during file uploads."},{"question":"Why is my application receiving image/x-tiff files?","answer":"If a user uploads a scanned document or photograph using outdated software (like early Windows utilities or legacy enterprise intranet portals), the client's internal registry may still map .tiff files to the 'image/x-tiff' MIME type."},{"question":"Are TIFF files supported in web browsers?","answer":"Generally, no. Except for older versions of Safari on macOS, modern web browsers (Chrome, Firefox, Edge) do not natively render TIFF files inline. They will typically prompt the user to download the file instead. For web display, TIFFs must be converted to JPEG, PNG, or WebP."}]},"index":{"compression":["Uncompressed","LZW (Lossless)","ZIP / Deflate (Lossless)","PackBits (Lossless RLE)","JPEG (Lossy)","CCITT Group 3/4 (Fax/Document)"],"browserSupport":{"score":1,"label":"None (Legacy Safari only)"},"commonUses":["Professional Print and Desktop Publishing","High-Resolution Archival Scanning","Master Copies of Digital Photography"]},"technical":{"magicBytes":{"hex":"49 49 2A 00 (Little-endian) or 4D 4D 00 2A (Big-endian)","ascii":"II*\\x00 or MM\\x00*"},"container":"IFD (Image File Directory) Tag Structure","compressionAlgorithm":["None","LZW","Deflate","PackBits","JPEG","CCITT"],"colorDepth":["1-bit (Monochrome)","8-bit (Grayscale or Indexed)","16-bit (Per Channel)","32-bit (Float Per Channel)"],"transparency":true,"animation":false,"metadata":{"exif":true,"xmp":true,"iccProfile":true},"alphaChannel":true,"progressiveLoading":false,"hdrSupport":true},"history":{"developer":"Aldus Corporation (Later acquired by Adobe Systems)","released":"1986","specification":"TIFF Revision 6.0 (1992)"},"browserSupport":{"chrome":false,"chromeVersion":"None","firefox":false,"firefoxVersion":"None","safari":false,"safariVersion":"None","edge":false,"edgeVersion":"None","internetExplorer":false},"softwareSupport":[{"name":"Adobe Photoshop","logo":""},{"name":"Adobe Illustrator","logo":""},{"name":"ImageMagick","logo":"image-magic.webp"},{"name":"GIMP","logo":"gimp.svg"}],"conversion":{"convertTo":["jpeg","png","webp"],"convertFrom":["psd","jpeg","png"]},"developer":{"httpHeaders":[{"header":"Content-Type","value":"image/tiff"},{"header":"Content-Type","value":"image/x-tiff"}],"htmlAccept":"image/tiff, image/x-tiff, .tiff, .tif","fileDetection":["TIFF files always begin with a distinct 4-byte header indicating their endianness.","Little-endian (Intel) TIFFs begin with 'II' followed by 42 (Hex: 49 49 2A 00).","Big-endian (Motorola) TIFFs begin with 'MM' followed by 42 (Hex: 4D 4D 00 2A).","When receiving 'image/x-tiff' from an HTTP form upload, developers should programmatically normalize the string to 'image/tiff' before saving the file metadata to ensure strict compatibility."]},"prosCons":{"pros":["Universally accepted as the gold standard for high-fidelity archival and professional print workflows","Highly adaptable structure supports multiple pages (documents), layers, vast bit depths, and diverse compression algorithms within a single file","Unmatched support for rich metadata including EXIF, IPTC, XMP, and custom ICC color profiles"],"cons":["Produces exceptionally large file sizes compared to modern web formats","The 'x-tiff' legacy MIME string forces developers to write extra validation logic to prevent strict security filters from rejecting valid uploads","The format's immense complexity means that many lightweight parsers only implement a subset of the specification, sometimes failing to read obscure compressions (like CCITT or old JPEG-in-TIFF)"]},"specifications":{"url":"https://www.adobe.io/open/standards/TIFF.html","rfc":"RFC 3302","mimeAliases":["image/tiff"]},"developerSnippets":{"python":"import magic\n# Modern Libmagic will output the standardized 'image/tiff' rather than the legacy 'x-tiff'\nprint(magic.from_file('scan.tiff', mime=True)) # Outputs 'image/tiff'","nodejs":"const mime = require('mime');\n// JS libraries resolve .tiff strictly to the IANA standard image/tiff\nconsole.log(mime.getType('scan.tiff')); // Outputs 'image/tiff'\n\n// Manually detecting the TIFF magic bytes\nconst fs = require('fs');\nconst buffer = Buffer.alloc(4);\nconst fd = fs.openSync('scan.tiff', 'r');\nfs.readSync(fd, buffer, 0, 4, 0);\nfs.closeSync(fd);\nconst isLittleEndian = buffer[0] === 0x49 \u0026\u0026 buffer[1] === 0x49 \u0026\u0026 buffer[2] === 0x2A \u0026\u0026 buffer[3] === 0x00;\nconst isBigEndian = buffer[0] === 0x4D \u0026\u0026 buffer[1] === 0x4D \u0026\u0026 buffer[2] === 0x00 \u0026\u0026 buffer[3] === 0x2A;\nconsole.log('Is TIFF:', isLittleEndian || isBigEndian);","go":"import (\n    \"bytes\"\n    \"net/http\"\n)\n// Native Go HTTP detection reads the 'II*' or 'MM*' header\n// mime := http.DetectContentType(buf) // Returns \"image/tiff\"","php":"// Example of normalizing the legacy MIME type during a file upload in PHP\n$mime = $_FILES['upload']['type'];\nif ($mime === 'image/x-tiff') {\n    $mime = 'image/tiff';\n}\necho $mime;"},"relatedFormats":["tiff","psd"]}
