JPEG Converter

Encode photographic images to JPEG at a quality you control. Up to 5 images per batch.

Target Format
jpeg
80%
Up to 5 images per batch

How to use

01

Load up to five photographs

PNG, WebP and JPEG sources are accepted. Header bytes are verified and the 25 MB and 8192 pixel limits are checked before anything is queued.

Tip: JPEG is for photographic content. Screenshots and flat graphics will ring around the edges at any reasonable quality setting.
02

Choose a quality

The slider defaults to 80, which is a sensible balance for most photographs. Drop to 70 for large background images, raise to 90 for anything that will be examined closely.

Tip: Past 90 the file grows quickly while the visible improvement stalls, and the interface flags it when you go there.
03

Encode and download the ZIP

Two images encode concurrently and the results are packed into one archive, keeping their original names with a .jpeg extension.

Tip: Always encode from the highest quality source you have. Re-encoding an existing JPEG compounds its artefacts.

Key Features

Compatible with absolutely everything

No format comes close for reach. If an image has to open in unknown software, on unknown hardware, at some unknown point in the future, JPEG is the safe answer and always has been.

Direct quality control

The slider maps to the encoder's quality parameter, letting you trade file size against artefacts explicitly rather than trusting a preset to guess what the image is for.

Fast to encode and decode

The discrete cosine transform is cheap and has been hardware accelerated for decades. Encoding is effectively instant and decoding costs less client CPU than any newer format.

Runs in the browser

Encoding uses the canvas JPEG writer inside a Web Worker. Nothing is uploaded, nothing is stored, and the tool continues to work with no network connection.

No alpha channel, stated up front

JPEG cannot store transparency. Transparent regions are written as black rather than silently producing something unexpected later, so it is obvious immediately if you have chosen the wrong format.

Five images per batch

The cap keeps decoded bitmap memory within reach of a phone browser. Encoding runs two at a time so the batch still finishes quickly on a multi-core machine.

Frequently Asked Questions

My transparent image came out with a black background. Why?+
JPEG has no alpha channel, so transparency cannot be represented at all. The transparent pixels are transparent black in the canvas, and dropping the alpha leaves the black behind.

Use PNG for lossless transparency or WebP if you want transparency and small files at the same time.

Why does my screenshot look smeared around the text?+
That is ringing, and it is inherent to how JPEG works. The transform is poor at representing sharp high-contrast edges, so it spreads them into neighbouring pixels. Text and line art belong in PNG or WebP.
Is it bad to re-encode an existing JPEG?+
It costs you a little quality every time, because each pass quantises coefficients that were already quantised. One re-encode at a sensible quality is usually invisible. Doing it repeatedly in a workflow is what produces the degraded look people associate with the format.
What quality setting should I use?+
80 is a good default. Below 70 artefacts start becoming visible on most photographs. Above 90 you are mostly paying for bytes rather than quality, which is why the interface warns you there.
Should I use JPEG or WebP?+
WebP for anything served to a browser, because it is smaller at the same quality and supports transparency. JPEG when the file is leaving your control and has to open reliably in software you cannot predict.
Why five images per batch?+
Because each one is fully decoded into memory before encoding, and a decoded 4000 by 3000 image is around 48 MB regardless of how small the file is. Five is what a modest device can hold without the browser terminating the tab.

Format Comparison

Feature SpecificationJPEG conversionAlternative
Size at matched qualityBaseline20 to 30 percent smaller
TransparencyNone, becomes blackFull alpha channel
Sharp edges and textVisible ringingHandled cleanly
CompatibilityEverything ever madeEvery current browser
Encoding speedVery fastSlower

Technical Overview & Specifications

Deep dive into JPEG conversion architecture and processing.

Show Details

Platform Overview

JPEG was standardised in 1992 and it is still, by a wide margin, the most universally understood image format in existence. Every camera, every phone, every printer, every content management system, every ancient enterprise application that someone has to keep alive: all of them read JPEG without argument. That is the entire reason to choose it in 2026. It is not the most efficient option any more, and has not been for years, but it is the option that will never need a fallback, never trip over a decoder gap and never produce a support ticket from someone on software you have never heard of.

The format works by converting each 8 by 8 block of pixels into frequency coefficients with a discrete cosine transform, then throwing away the high-frequency ones your eye is least sensitive to. Quality settings control how aggressively that discarding happens. It also has no alpha channel at all, which is worth knowing before you convert something transparent: areas that were transparent come out black, because the canvas underneath is transparent black and JPEG has nowhere to record the alpha. If your image has transparency you want to keep, use the PNG or WebP tools instead. This page takes five images per batch and encodes them entirely in your browser.

What the encoder actually discards

JPEG splits the image into 8 by 8 blocks and applies a discrete cosine transform to each one, converting sixty-four pixel values into sixty-four frequency coefficients. The first coefficient describes the average brightness of the block and the rest describe progressively finer detail. Those coefficients are then divided by values from a quantisation table and rounded, which is the lossy step and the only one. The quality setting scales that table: a high quality means small divisors and little rounding, a low quality means large divisors and coefficients that round to zero and vanish entirely. Because each block is transformed independently, pushing the quality down eventually makes the block boundaries themselves visible, which is the familiar JPEG look.

Before any of that, most encoders convert the image from RGB to a luminance and two chrominance channels, then halve the resolution of the chrominance channels in both directions. Human vision is considerably more sensitive to brightness detail than colour detail, so this discards three quarters of the colour information at almost no perceptual cost. In this tool the whole pipeline runs through the browser's canvas JPEG encoder inside a Web Worker: the source is decoded to a bitmap, drawn to an OffscreenCanvas at the target size with any crop applied, and serialised at the mapped quality. Nothing is transmitted, and the encoded blob goes straight into the ZIP alongside the rest of the batch.