Image Format Converter – change the format, see the trade-offs
This image format converter turns the files that phones, cameras, scanners and websites produce into the format you actually need. Drop in a batch of HEIC, JPEG, PNG, WebP, GIF, AVIF, BMP, ICO, TIFF or SVG files, choose one output (JPEG, PNG, WebP, GIF, BMP, TIFF or ICO) and download the results one at a time or as a ZIP. Typical jobs are HEIC to JPG for iPhone photos, WebP to PNG for an editor that can't open WebP, PNG to ICO for a Windows shortcut, and SVG to PNG for a slide deck.
Every file is identified from its bytes rather than its extension, because a PNG renamed to .jpg or a HEIC with no type at all is common. Decoding and encoding run entirely in your browser, so this is a private image converter: the pictures never leave your device.
What each format can store
| Format | Compression | Transparency | Animation | Colours | Read here | Write here |
|---|---|---|---|---|---|---|
| JPEG | Lossy | No | No | 16.7 million | Yes | Yes |
| PNG | Lossless | Full | APNG (first frame here) | 16.7 million | Yes | Yes |
| WebP | Lossy or lossless | Full | Yes (first frame here) | 16.7 million | Yes | Where the browser can |
| GIF | Lossless, 256-colour palette | On/off | Yes (first frame here) | 256 | Yes | Yes |
| BMP | None | 32-bit only | No | 16.7 million | Yes | Yes |
| TIFF | None when written here | Full | Multi-page (page 1 here) | 16.7 million | Yes | Yes |
| ICO | PNG inside | Full | No | 16.7 million | Yes | Yes |
| HEIC / AVIF | Lossy | Full | Sequences (primary image here) | Over 1 billion | Yes | No |
| SVG | Vector | Full | No | Any | Yes (rasterised) | No |
Which format should you pick?
- Photos: JPEG or WebP. Both are lossy, which is what keeps a 12-megapixel photo at a couple of megabytes instead of 36.
- Screenshots, logos and text: PNG. Lossless compression keeps hard edges crisp, where JPEG would add ringing around every letter.
- Anything that needs transparency: PNG or WebP. JPEG has no alpha channel, so transparent areas are filled with the background colour you choose.
- Windows icons: ICO, with several sizes (16, 32, 48 and 256 px by default) packed into one file. For a full website favicon set, use the dedicated favicon generator instead.
- Printing and archiving: TIFF. It is uncompressed here, so it is large but accepted by virtually every print and archive workflow.
See the cost before you download
Each row lists what the conversion loses: flattened transparency, dropped animation frames, a 256-colour palette, removed metadata, a converted colour profile, or a vector image becoming pixels. The before/after view shows the real encoded output, not the canvas it came from, so compression artefacts are visible at 200% or 400%. Zoom to detail jumps to the busiest part of the picture, where artefacts appear first.
The format comparison encodes the selected image in every format and charts the actual file sizes against the original. Uncompressed sizes follow exact formulas: a 24-bit BMP is 54 + rowBytes × height bytes, with each row padded to a multiple of 4, and a TIFF written here is 1000 + 4 × width × height bytes. For a 1920 × 1080 image that is 6.2 MB and 8.3 MB, whatever the picture shows.
How GIF output works
If the image already uses no more colours than the limit, GIF output uses those exact colours and is pixel-identical, so pixel art survives untouched. Otherwise the colours are reduced to a 256-entry palette and, with dithering on, the error is spread to neighbouring pixels (Floyd–Steinberg) so gradients band less. GIF transparency is on/off only: pixels below the threshold become transparent and soft edges are blended onto the background colour.
Metadata and dates
Re-encoding removes EXIF, XMP and IPTC data, including GPS location, which makes the output safer to share. For JPEG output, “Keep date taken & camera” writes back only the capture date, its time-zone offset and the camera make and model, so photo libraries still sort the picture correctly.
Credits
HEIC files are decoded, when the browser can't do it itself, with libheif and libde265 via libheif-js (LGPL-3.0), loaded unmodified as a separate file. TIFF files are read and written with UTIF.js (MIT), and GIF files are encoded with gifenc (MIT).