Skip to main content

TIFF to GIF converter

Convert TIFF images to GIF format

No watermarkFree & unlimited
All processing happens in your browser. No data is sent to any server.

GIF is an indexed format, so this conversion has to throw colours away. After the TIFF parser rebuilds your scan in a canvas, a GIF89a writer in this page maps every pixel to the nearest entry in a fixed 216-colour web-safe cube, packs the resulting indices with LZW and emits one frame. There is no dithering pass and no adaptive palette, which means smooth gradients band visibly while flat artwork, diagrams and line drawings survive well. Expect a single still image: a multi-page TIFF does not become an animation here.

Key facts about TIFF to GIF converter

Key facts about TIFF to GIF converter
PaletteA fixed 6x6x6 web-safe cube: channel values of 0, 51, 102, 153, 204 and 255 only, giving 216 usable colours.
Colour matchingNearest neighbour by squared RGB distance, with no dithering, so gradients posterise into visible bands.
Adaptive paletteNot available. The writer never analyses your image to build a custom 256-colour table for it.
TransparencyNo graphic control extension is written, so GIF transparency is off and alpha areas resolve to black.
AnimationOne frame, no loop block. Page one of a multi-page TIFF is all that is read and all that is written.
CompressionLZW with an 8-bit minimum code size, table reset at 4,096 codes, data split into 255-byte sub-blocks.
Typical size deltaA 5.93 MB uncompressed 1920x1080 photo scan lands roughly between 600 KB and 1.4 MB, and looks banded.
Flat artworkLogos, charts and scanned line art often fall below 100 KB because LZW finds long runs of one index.
Dimension ceilingWidth and height are 16-bit fields, so keep the image under 65,535 pixels on each side.
Source requirementUncompressed 8-bit baseline TIFF only; compressed scans are refused before any colour reduction happens.
Opens natively inEvery browser and chat client, Windows Photos, macOS Preview, and every image editor made since the nineties.

What happens to your file

All of it happens on your device. The TIFF is read with the File API, decoded by this page own parser, and drawn into a canvas whose pixels are pulled back with getImageData. The palette match, the LZW encoder and the GIF89a block assembly are plain JavaScript running in the tab, and the finished byte arrays are joined into a Blob for download. No upload endpoint exists for this tool, so there is no server copy to expire, and nothing persists after a reload.

About this tool

  1. 1

    Add your scan

    Drop a .tif or .tiff file onto the panel, or click it to open the picker. Several files can be queued.

  2. 2

    Shrink first if it is large

    Use a size preset. The nearest-colour search runs per pixel, so a smaller image converts noticeably faster.

  3. 3

    Convert

    The writer indexes every pixel against the 216-colour cube, LZW-packs the result and emits one GIF89a frame.

  4. 4

    Check the banding

    Open the preview before you commit. Photographic content shows the palette limit far more than flat art does.

  5. 5

    Download

    Save the .gif, or take a multi-file run as a ZIP built by the page itself.

Specs & compatibility
Input and outputTakes .tiff and .tif only (image/tiff) and returns .gif with the image/gif type; any other extension is refused before decoding.
Conversion pathTIFF to GIF 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 getImageData feeds a palette mapper and an LZW encoder that live in the page.
Browser supportThe 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 GIF needs nothing from the browser, the encoder shipping inside the page.
Controls for this pairNo quality slider, GIF not being a lossy target here, so the max-dimension presets from 3840 down to 200 px are the only way to hold the GIF down in size against the TIFF.
Batch, caps and namingTwenty TIFF files per run at 500 MB each; one result downloads as a single GIF, several as converted-gif-files.zip, zipped by JSZip 3.10 in page memory.
Device ceilingThe 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 GIF bytes exist.
  • Pick this target for diagrams, scanned line art, logos and screenshots. For a photographic scan, PNG or WebP will be both smaller and cleaner.
  • There is no dithering, so a sky or a studio backdrop turns into visible steps. Adding a little grain in an editor beforehand can hide the bands.
  • Colour matching cost grows with pixel count because each pixel is compared against all 216 palette entries. Downscale large scans before converting.
  • If the source has transparency, composite it onto the background colour you want first. The writer has no transparent index to fall back on.
  • An image whose colours already sit near the web-safe values, such as a chart exported from a spreadsheet, converts almost losslessly.
  • Post a scanned diagram or schematic into an old forum, wiki or ticketing system whose uploader accepts GIF but not TIFF.
  • Produce a small still frame from an archival scan for use in documentation where file size matters more than colour fidelity.
  • Supply a legacy application or embedded display that reads indexed GIF frames and nothing more modern.
GIF stores colour indices rather than colour values, and this writer uses a fixed 216-entry web-safe palette with no dithering. A photographic scan can contain tens of thousands of distinct colours, so each one is snapped to its nearest of 216, which produces stepped bands in skies, skin and gradients. Choose PNG or WebP if you need the real colours.
No. The TIFF reader follows the file header to the first image directory and stops, and the GIF writer emits one image descriptor with no graphic control extensions or loop block. If you want an animation, export the pages as separate images and assemble them in a dedicated animation tool.
Not as written here. Transparency in GIF requires a graphic control extension that nominates one palette index as transparent, and this writer emits no such block. Any alpha in the source is ignored during the palette match, which leaves fully transparent pixels as black because their RGB values are zero.
Almost always, because the TIFF is uncompressed while GIF applies LZW to one byte per pixel instead of three. For a Full HD photographic scan expect roughly 600 KB to 1.4 MB against nearly 6 MB. Flat artwork does much better: long runs of the same index compress hard and often land below 100 KB.
216 in practice. The global colour table is declared with 256 slots, as the format requires a power of two, but only the 6x6x6 cube is populated and the remaining entries are zeroed. No adaptive palette is computed, so an image using only a handful of colours still gets matched against the same fixed cube.
Every pixel is compared against all 216 palette entries to find the closest match, so the work scales with the pixel count rather than with the file size. A 24-megapixel scan means several billion comparisons in JavaScript. Dropping the longest edge to Full HD with a size preset cuts that by more than an order of magnitude.
View all

Need the opposite? Try GIF to TIFF

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy