QR Code Blurred? Causes and How to Fix It
A QR code that scans as a soft, fuzzy blob usually isn't a phone problem. Most of the time a QR code blurred like this has one root cause baked into the file itself, and the rest come from how it got printed, screenshotted, or exported. Below are the causes we see most often, roughly in order of frequency, with the fix for each.
1. Low-resolution source image
A QR code is a grid of square modules, and every module has to render as a sharp, distinct block for a scanner to read it. If the source file is a raster image saved at something like 150x150 pixels for a 25-module (Version 2) code, each module works out to about 6 pixels wide. Cameras and print processes both soften edges, so anything under roughly 10 pixels per module starts to blur at the boundaries. Export the code at a higher pixel count from the start rather than trying to sharpen it after the fact.
2. Over-compression breaks the module grid
Saving a QR code as a JPEG at a low quality setting introduces compression artifacts that blur the hard edges between black and white modules. JPEG is built for photos with gradients, not high-contrast binary grids, so it smudges pixel boundaries to save file size. Use PNG instead, which is lossless and keeps every module edge crisp regardless of how many times the file is resaved.
3. Print DPI too low
A code that looks perfectly sharp on screen can turn to mush on paper if the print resolution doesn't match the module size. Standard inkjet and laser output needs at least 300 DPI for a code printed at 1 inch square; drop to 150 DPI and the printer is trying to represent fine modules with visibly larger dots, which reads as blur. Thermal label printers (common on shipping labels and receipts) often run at 203 DPI, so codes meant for those need a larger physical size to compensate, not a higher-res image.
4. Scaling a small raster image up
Taking a 200x200 pixel PNG and stretching it to fill a poster or banner is the single most common cause of visibly blurred QR codes in print. Raster images have a fixed pixel count, so scaling up just makes each existing pixel bigger and softer instead of adding real detail. A vector file (SVG or EPS) has no fixed resolution and stays perfectly sharp at any size, from a business card to a billboard.
5. Motion blur during the scan, not the code itself
Sometimes the file is fine and the blur is happening in the camera at scan time. If the phone or the printed material is moving even slightly while the camera is exposing the shot in low light, the captured image smears. This shows up as inconsistent scan failures where the same code works fine in bright light but fails under dim lighting or when held at an angle instead of flat and steady.
6. Out-of-focus camera lens
Most phone cameras need a few inches of distance to autofocus on a small printed code; get too close and the lens can't lock focus, producing a soft image no matter how sharp the printed code is. This is a scanning-side issue rather than a file or print problem, and it's worth ruling out before reprinting anything: back the phone away a few inches and let the camera focus before triggering the scan.
7. Screenshotting and re-screenshotting the code
Every time a QR code image is screenshotted, cropped, pasted into a document, and screenshotted again, it loses a little sharpness, especially if any step involves a JPEG save or a resize. After two or three generations of this, edges that were originally crisp black-and-white squares turn into gray, feathered boundaries. Always go back to the original generated file rather than a screenshot of a screenshot.
8. PDF export flattening at low resolution
Design tools and word processors often flatten embedded images when exporting to PDF, and the default export preset (commonly "web" or "screen" quality) can downsample images to around 72 DPI regardless of the original resolution. A QR code that was sharp in the source document comes out visibly blurred in the printed PDF. Check the export settings for a "print" or "high quality" preset, or embed the code as a vector object so flattening can't degrade it.
9. Wrong file format for the intended use
Using a JPEG thumbnail meant for a website on a large-format print, or embedding a low-res PNG into a vector design file, mismatches the format to the job. Screens and small digital placements can tolerate a PNG in the 300-500 pixel range; anything going to print, especially at variable or large sizes, should start as SVG so the module edges stay mathematically sharp instead of pixel-based.
10. Fix: regenerate the code as a vector
If a code is already blurred, don't try to sharpen the existing image; regenerate it from the original data (URL, text, or contact info) as an SVG. That resets every module to a clean vector square with no compression history and no accumulated resizing loss, and it exports cleanly to PNG at whatever resolution the final use case needs.
Standards and references
ISO/IEC 18004 is the base specification for QR code symbols: it defines the module grid, the four-module-wide quiet zone required around every code, and the 40 available symbol versions from 21x21 to 177x177 modules. ISO/IEC 15415 is the companion print-quality standard for 2D symbols; it grades printed codes on parameters including symbol contrast, modulation, and axial and grid nonuniformity, all of which degrade when a code is printed at low DPI, over-compressed, or scaled from a low-resolution raster source. A code can be structurally valid under 18004 and still fail a scan because it grades poorly under 15415, which is exactly what a blurred print or screenshot produces.
Related: regenerate it as a vector barcode or QR code · code not scanning at all, not just blurry · all QR code tools
