JPEG export with quality control

QR code JPG generator with real compression control

Encode a URL or text, then export it as a QR code JPEG at the width, quality, and quiet zone you choose. The panel shows the exact file size in kilobytes, the module count, and the pixels each module gets, so you can see whether the JPG will still scan before you download it. Free, no sign-up, and nothing is uploaded to a server.

1. QR code data

Anything a QR code can hold: a link, plain text, a Wi-Fi string, or vCard data.

2. JPEG export settings

These controls decide whether a QR code JPG still scans.

Error correction

Background is locked to white because JPEG stores no transparency.

What changes when a QR code becomes a JPG

A PNG writes each module as an exact colour value. A JPEG writes nothing of the kind: it splits the picture into 8 by 8 blocks, converts each block into frequency coefficients, then throws away the coefficients the encoder judges least visible. On a photograph that trade is invisible. On a code made entirely of hard edges, the discarded information is the edge itself.

Three behaviours that break QR codes

Chroma subsampling. Most encoders keep full brightness resolution and store colour at half or quarter resolution, the 4:2:0 and 4:2:2 modes. Brightness carries the shape of each module, so a well-tuned JPEG survives this. Push the quality down and the colour planes smear sideways into the neighbouring modules, which is what produces the faint coloured fringe you can see around a low quality code.

Ringing on hard edges. Quantizing a sudden jump from black to white overshoots on both sides and leaves faint concentric bands around every module. At quality 0.9 the bands sit a few grey levels above the background. At 0.5 they are wide enough that a decoder reads the first dark module of a row as two modules.

No transparency. JPEG cannot store an alpha channel, so the unpainted part of the image becomes a solid colour and the format has nowhere to record which one. That is why the background on this page is locked to white rather than offered as an option, and why a QR code JPG dropped on a dark web page still arrives with a white frame.

The number that decides whether it scans

Before any compression, divide the exported width by the total cell count. The total is the module count plus twice the quiet zone, so a version 3 code with a 4 module margin is 29 + 8 = 37 cells. At 900 pixels that is 24 pixels per module and compression has enormous room. At 111 pixels it is exactly 3, and quality below 0.85 starts to cost you scans. The readout under the preview shows this figure live.

  • Under 2 pixels per module: decoders fail on screen, and fail consistently on camera.
  • 3 to 4 pixels per module: works on screen and on a flatbed, risky on a phone camera.
  • 5 to 8 pixels per module: scans from a printed page at arm's length.
  • 10 pixels or more: safe for social media, where the platform recompresses your file again.

PNG, JPG, or SVG for a QR code image?

Pick PNG when the code will be resized, recoloured, or placed on a transparent background. Pick JPG when the destination only accepts photos, when the file travels through email, or when a page has a fixed white background anyway. Pick SVG when the code is going to print at an unknown size.

FormatLossyTransparentBest forMain risk
PNGNoYesScreens, app uploads, anything recoloured laterLargest file at big pixel dimensions
JPG / JPEGYesNoEmail signatures, web pages, forms that reject PNGSoft module edges when quality drops
SVGVector, no lossYesPrint, embeds in HTML, logosMany phone scanners will not open the file directly

Settings that hold up

These are the combinations that survive the round trip from generator to camera, measured against the payload lengths most people paste in. They are starting points, not rules: raise the width if the preview reports fewer than 5 pixels per module.

Where it goesWidthQualityError levelNote
Link in an email footer600 px0.90MMail clients downscale images; keep some headroom
Website or landing page900 px0.92MSharp on retina, still under 10 KB for short payloads
Instagram or LinkedIn post1200 px0.95QSocial platforms recompress once more on upload
Flyer, A5 at 300 dpi1500 px0.95MPrinted at about 4 cm with room to spare
Poster or banner2000 px1.00LViewed from distance, so large modules matter more than density
URL with a long query string1600 px0.95LLong payloads force a higher version and smaller modules

Print sizes at common resolutions

Print resolution is dots per inch, so divide the pixel width by the dpi to get the physical size. A 900 pixel QR code JPG prints at 3 inches across on a 300 dpi flyer, 6 inches on a 150 dpi poster, and 9 inches at the 100 dpi most large-format banner machines accept. Working backwards from the print is more useful: measure the space you have in inches, multiply by the dpi your printer uses, and export at that width or a little above it.

One caution for print work. Enlarging a JPEG that was exported small resamples an already lossy file, and the printer quantizes it a second time. Export at final size instead. If the code must scale beyond 2000 pixels, use the SVG route on the main QR code image generator.

QR code JPG questions

Can a scanner read a QR code saved as a JPG?
Yes, as long as each module keeps a hard edge after compression. A QR code JPG encoded at quality 0.9 or higher with at least 3 pixels per module scans on the first try. Drop the quality to 0.5 or shrink the image and the encoder starts smoothing exactly the boundaries a decoder uses to find the three finder patterns.
Is a QR code JPG smaller than the same QR code as a PNG?
Usually not. A QR code is a flat two-colour picture, and PNG compresses flat colour almost perfectly with no loss. A JPEG pays for wavelet-style block coding on edges that carry no photographic detail. The QR code JPG wins on file size only at large pixel dimensions, where PNG scales with pixel count and JPEG scales with detail.
Why does the QR code JPG always have a white background?
JPEG has no alpha channel, so it cannot store transparency. Whatever you leave unpainted becomes a solid colour, and the format has no place to record which one. White is also the correct choice: camera decoders measure the difference between the dark modules and the surrounding surface, and a white quiet zone gives the largest possible difference.
What JPEG quality should I use before printing?
Use 0.95 or higher, and render the file at the print resolution rather than enlarging it afterwards. A 3 by 3 inch QR code at 300 dpi needs a 900 pixel image. If you export at 300 pixels and let the printer scale it up, the printer resamples an already lossy JPEG and the module edges soften twice.
How big should the image be?
Count the modules, add twice the quiet zone, and multiply by 3 to 4. A version 3 code is 29 modules wide, with a 4 module quiet zone on each side that is 37 cells, so 111 to 148 pixels is the working minimum. The preview on this page shows the real module count and the resulting pixels per module so you do not have to estimate.
Can I colour a QR code JPG?
You can change the foreground to any colour dark enough against white. Keep the contrast ratio above about 4 to 1: dark green, navy, or near-black work, pale yellow and light grey do not. Because JPEG stores colour separately from brightness, a low quality setting also desaturates the edge pixels, which is why coloured codes fail to scan earlier than plain black ones.
Is JPG the same as JPEG?
They are the same format. JPEG is the name of the committee that defined it, and JPG exists because early Windows required three-letter extensions. A file named qr-code.jpg and a file named qr-code.jpeg hold identical data, and this generator names downloads with the .jpg extension.

Keep going