TIFF to JPG Converter — From 50 MB Master File to 2 MB Delivery
Convert TIFF master files to deliverable JPG — 94–98% smaller, no upload, your originals stay private.
Drop TIFF files here or click to select
JPG, PNG, WebP, GIF, BMP, AVIF, TIFF — multiple files supported
How to convert TIFF to JPG
- Drop your TIFF files onto the converter above — or click to browse and select files.
- Click Convert on any individual file, or Convert all to process the entire batch at once.
- Download individually or click Download all for a ZIP archive.
- Tip: keep your original TIFF — it's the master file. The JPG is for delivery, email, and web. Never re-edit from JPG.
Your TIFF masters stay private — no upload, no server
TIFF master files — containing your best work at full resolution — are processed entirely in your browser. No file is uploaded to any server, no third party sees your originals. Professional photo archives stay private.
Even large TIFF files (50–200 MB) convert in seconds once the browser has loaded them into memory. The Canvas API processes them without any network dependency — works on slow Wi-Fi or completely offline.
// Transparent TIFF → white fill for JPG
const canvas = document.createElement('canvas')
canvas.width = img.width
canvas.height = img.height
const ctx = canvas.getContext('2d')
ctx.fillStyle = '#ffffff'
ctx.fillRect(0, 0, canvas.width, canvas.height)
ctx.drawImage(img, 0, 0)
canvas.toBlob(cb, 'image/jpeg', 0.92)Who converts TIFF to JPG
Photographers delivering client galleries from Lightroom or Capture One. TIFF is the master — 50–200 MB per image. Converting to JPG creates a 1–3 MB file that uploads to SmugMug, Pic-Time, or Google Drive in seconds rather than minutes.
Print studios sharing high-resolution proofs with clients via email. A 100 MB TIFF proof becomes a 2 MB JPG preview — small enough for any email attachment limit and viewable on every device without specialist software.
Archivists digitizing old photo albums with flatbed scanners that output TIFF. Converting scans to JPG creates a shareable album that family members can open on phones and tablets without any special applications.
TIFF vs JPG — format comparison
| Feature | TIFF | JPG |
|---|---|---|
| Compression | Lossless or none | Lossy — quality 0.92 default |
| Typical file size | 50–200 MB | 1–5 MB for same content |
| Browser support | None — not displayable | 100% |
| Re-save quality | No loss | Degrades each time |
| Layers / channels | Multi-layer support | Flat single layer |
| Metadata | EXIF, XMP, IPTC, layers | EXIF, XMP |
| Best for | Master files, print, archiving | Delivery, web, email |
When to use JPG vs keep TIFF
Convert TIFF to JPG when:
- Client gallery delivery — Pic-Time, SmugMug, Google Drive uploads are fast as JPG
- Email proofing — a 2 MB JPG attaches to any email; a 100 MB TIFF does not
- Social media — Instagram, Facebook, and X all require JPG or PNG, not TIFF
- Website embedding — browsers cannot display TIFF; JPG is required for any web use
- Print lab submission — many print services accept JPG for standard orders
Always keep the original TIFF:
- Future editing — TIFF is the master; re-editing from JPG accumulates artifacts with each save
- Fine art prints — large-format printing requires full TIFF resolution and bit depth
- Color grading — TIFF preserves 16-bit color depth; JPG is 8-bit only
- Archive copies — TIFF is the archival standard for photography and document scanning
How the conversion works
Your browser loads the TIFF into a hidden HTMLImageElement. On the load event, the image is painted onto an HTML5 Canvas. If the TIFF has a transparent layer, it is filled with white — JPG has no alpha channel. The canvas encodes as JPG via toBlob().
Quality 0.92 produces output visually indistinguishable from the TIFF at normal delivery sizes. Always keep the original TIFF — JPG is for delivery and distribution only. Re-editing from JPG accumulates compression artifacts with each save.
const blob = await new Promise(resolve => {
const img = new Image()
img.onload = () => {
const canvas = Object.assign(
document.createElement('canvas'),
{ width: img.width, height: img.height }
)
const ctx = canvas.getContext('2d')
ctx.fillStyle = '#ffffff' // white bg for any TIFF transparency
ctx.fillRect(0, 0, img.width, img.height)
ctx.drawImage(img, 0, 0)
canvas.toBlob(resolve, 'image/jpeg', 0.92)
}
img.src = URL.createObjectURL(tiffFile)
})