TIFF to PNG converter
Convert TIFF images to PNG format
Browsers cannot display TIFF, so this page ships its own reader. A short JavaScript parser walks the file header, reads the first image directory, pulls the strip offsets and byte counts, and rebuilds the pixels as RGBA image data. From there a canvas re-encodes them with the browser PNG encoder, which is lossless, so the result is pixel-identical to what the reader produced. The one hard requirement is that the TIFF be uncompressed: a file saved with LZW, PackBits, Deflate or JPEG-in-TIFF is refused with a message rather than decoded incorrectly.
Key facts about TIFF to PNG converter
| Accepted compression | Compression tag 1 only. LZW, PackBits, Deflate and JPEG-in-TIFF files stop with an explicit error. |
|---|---|
| Bit depth handled | 8 bits per sample. A 16-bit-per-channel scan decodes to noise, so reduce to 8 bit before converting. |
| Channel layouts | RGB and RGBA are read directly; single-channel greyscale is expanded, honouring the WhiteIsZero photometric flag. |
| CMYK scans | A CMYK TIFF is read as if it were RGBA and comes out wrong. Convert it to RGB in an editor first. |
| Pages | Only the first image directory is parsed, so page one of a multi-page fax or scan is what you get. |
| Transparency | Alpha survives when the TIFF carries four samples per pixel; ordinary three-channel scans arrive fully opaque. |
| Compression gained | PNG applies lossless Deflate with filtering, so nothing is discarded, unlike a JPEG or WebP export. |
| Typical size delta | A 5.93 MB uncompressed 1920x1080 photo TIFF lands around 2 to 4 MB as PNG; flat graphics drop under 600 KB. |
| Metadata | The canvas re-encode writes no EXIF, no XMP and no ICC profile, so the PNG is untagged and read as sRGB. |
| Extensions accepted | Both .tif and .tiff are recognised by the picker and by drag and drop. |
| Opens natively in | Every browser, Word and Google Docs, Slack, Figma, mobile galleries: all the places TIFF is rejected. |
What happens to your file
Your scan is read with file.arrayBuffer() and parsed by the TIFF reader that is part of this page bundle, so the bytes never leave the tab. The reconstructed pixels are written into a canvas with putImageData, converted once to a PNG data URL so an Image element can hold them, then re-encoded through canvas.toBlob for the download. No request carrying image data is made at any point, and nothing is written to storage: reload the page and the converter starts empty.
About this tool
- 1
Add the scan
Drop a .tif or .tiff file on the panel, or click to browse. Several files can be lined up in one go.
- 2
Check it decodes
If the file was saved with compression the converter says so immediately, before any pixels are written.
- 3
Choose a target size
Keep Original for an exact copy, or cap the longest edge at 4K, Full HD, HD or one of the smaller presets.
- 4
Convert and download
Press Convert, then save the .png, or take the entire batch down as a single ZIP archive.
| Input and output | Takes .tiff and .tif only (image/tiff) and returns .png with the image/png type; any other extension is refused before decoding. |
|---|---|
| Conversion path | TIFF to PNG runs in three steps: the page's own baseline parser reads the IFD and rebuilds the pixels, because no browser decodes TIFF; the pixels land on a 2D canvas in this tab; then canvas.toBlob with the image/png type returns the finished file. |
| Browser support | The TIFF side needs no browser support at all, only a baseline uncompressed source, because LZW, Deflate and JPEG-in-TIFF files stop with an error, while writing the PNG is just as universal, canvas.toBlob having produced it since canvas existed. |
| Controls for this pair | No quality slider, PNG not being a lossy target here, so the max-dimension presets from 3840 down to 200 px are the only way to hold the PNG down in size against the TIFF. |
| Batch, caps and naming | Twenty TIFF files per run at 500 MB each; one result downloads as a single PNG, several as converted-png-files.zip, zipped by JSZip 3.10 in page memory. |
| Device ceiling | The canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized TIFF fails before any PNG bytes exist. |
- If the converter reports compressed TIFF, re-export from your scanner software or editor with compression set to None. That is a save option, not a quality setting, so nothing is lost by turning it off.
- Greyscale scans read correctly, including the inverted WhiteIsZero convention that fax-style TIFFs use, but they leave as three-channel PNGs and are therefore larger than a true greyscale export.
- For a multi-page document TIFF, split the pages in a desktop tool first. This reader stops after the first directory and gives no warning that more pages existed.
- PNG keeps every pixel, so it is the right target when the scan will be edited again. Choose JPG or WebP instead only when the file is going straight onto a web page.
- Very large scans are limited by canvas size, not by the TIFF itself. Desktop browsers top out near 16,384 px per side, and mobile Safari well below that.
- Get a scanned contract or archival page into a format that email clients, chat apps and web forms will actually preview.
- Prepare a microscope, satellite or medical capture saved as baseline TIFF for a report or slide deck that cannot embed TIFF.
- Turn a flatbed scan into an image you can drop straight into Figma, Google Docs or a CMS upload field.
Related tools
View allNeed the opposite? Try PNG to TIFF
Works well with this4
Other PNG tools12
Updated