Remove noise, fix contrast and brightness, whiten yellowed backgrounds, sharpen text, and straighten pages — all in one pass, entirely in your browser.
Drop your scanned PDF to enhance it
Click to browse or drag & drop
🔒 Your files never leave your device — every enhancement stage runs locally in your browser.
TL;DR
Step By Step
No install, no account — three steps in your browser tab.
Drag your file into the box above, or click to browse. Nothing uploads to a server — your browser reads the file directly.
Auto works well for most scans. Check the Smart Recommendations, switch presets, or adjust any of the 10 sliders with a live before/after preview.
Click "Enhance All & Download." Your improved PDF — and an optional JSON processing report — downloads instantly with no watermark.
Why PDFcrest
Seven presets and ten real parameters, not a single "auto-fix" button.
Background flattening, auto-gamma brightness, CLAHE contrast, deskew, noise reduction, sharpening, text clarity, black-level, and optional B&W — not a single blanket filter.
Brightness, Contrast, Sharpness, Noise Reduction, Background Cleaning, Text Enhancement, Deskew Strength, Whiten Background, Black Level, and Gamma — every one maps to a real parameter, live-previewed.
Every stage runs in your browser tab using pdf.js and pdf-lib — no OpenCV, no cloud API, no upload of your document at any point.
Every page's tilt is detected automatically using the same projection-profile method as PDFcrest's dedicated Deskew PDF tool, then corrected as part of the same pass.
Drag the divider, zoom to 200%, and scroll around any page to inspect exactly what each stage changed before committing to a download.
Already-clean pages can be marked "Skipped" so they pass through to the output PDF unmodified instead of being needlessly re-processed.
Comparison
| Feature | PDFcrest | i2PDF / typical online tool | Adobe Acrobat |
|---|---|---|---|
| Price | Free, unlimited | Often capped free tier | Subscription required |
| Enhancement presets | 7 presets + manual sliders | Usually 1 fixed "auto" filter | N/A — no dedicated scan enhancer |
| Manual control | 10 real sliders, live preview | Rarely available | N/A |
| Integrated deskew | Yes, in the same pass | Sometimes, separate step | Separate/no tool |
| Before/after comparison | Split-view with zoom | Rarely available | N/A |
| File privacy | 100% browser-based | Server upload typical | Desktop app or cloud |
| Black & white OCR mode | Yes, Otsu-thresholded | Sometimes | N/A |
| Watermark on output | Never | Common on free tiers | Never |
Use Cases
Clean up phone-scanned textbook chapters, library photocopies, and archived journal articles before studying or citing them.
Improve faded contracts and evidence scans so they read clearly and extract reliably for e-discovery and OCR-based review.
Sharpen scanned patient forms and employee records without uploading sensitive files anywhere.
Restore yellowed historical records and old flatbed scans with the Old Document Restoration preset.
Clean up noisy scanned receipts and statements in bulk before running them through OCR-based expense tools.
Improve batch-scanned books and periodicals with uneven lighting or scanner shadow before archiving.
Workflow Recipes
Enhancement is rarely the only step — here's how it usually fits into a scan-cleanup pipeline.
Remove wide scanner borders and margins first so the background-cleanup stage isn't fighting an oversized dark edge.
Cleaner contrast, less noise, and a straightened page all measurably improve OCR accuracy on the extraction step.
Drop empty sheets from a sheet-fed scan job before spending processing time enhancing pages that will just be deleted anyway.
Enhanced pages are re-rendered as high-resolution images — compress afterward to keep email attachments manageable.
Deskew is built into every enhancement preset here, but if you only need straightening with no other correction, the standalone tool is a faster, lighter option.
What People Say
"Had a box of old yellowed contracts scanned at a copy shop years ago. The Old Document Restoration mode brightened them up and made the text so much easier to read."
Karen Osei
"OCR Ready mode noticeably improved text extraction on a stack of noisy scanned invoices compared to running OCR on the originals."
Tomás Rivera
"The before/after slider made it obvious how much the background cleanup step removed the gray scanner shadow. Runs fully in the browser which was important for our client files."
Priya Menon
Related Searches
How It Works
Scanned PDFs lose quality for reasons that have nothing to do with the document itself. Flatbed and sheet-fed scanner sensors introduce grain, especially at lower DPI settings or in low light. Phone-camera scanning apps add uneven lighting, shadows near the spine of a book, and a slight perspective tilt. Photocopying a document more than once compounds contrast loss and noise each generation. Old paper yellows, and cheap toner or faded ink drops contrast between text and background. None of this is a flaw in the original document — it is signal degradation introduced entirely by the capture process, and most of it is measurable and correctable.
PDFcrest's enhancer addresses this with nine ordered stages. First, if the page is tilted, PDFcrest's projection-profile deskew detector (the same one used in the standalone Deskew PDF tool) straightens it, so every later stage operates on an upright page. Next, a background-flattening step estimates the paper's own local background color per color channel using a large-radius box blur, then divides each pixel by that local background and rescales toward white — this is what actually removes yellowing, scanner shadows, and uneven lighting, because a warm-toned background gets pulled toward neutral independently per channel rather than just brightened uniformly. With a clean, even background established, a brightness stage reads the page's own 90th-percentile brightness (a proxy for how bright its paper background already is, since background pixels dominate a typical text page) and solves a gamma correction that pushes that level toward near-white — targeting the background specifically, rather than the whole page's average tone, avoids dragging text-heavy pages toward mid-gray. Then CLAHE (Contrast Limited Adaptive Histogram Equalization) enhances local contrast in tiles across the page rather than applying one global curve — this is what separates faded ink from background even when different regions of the same page were scanned at different exposures. Finally, an edge-aware noise reduction pass smooths grain while preserving character edges, followed by two sharpening passes (a fine unsharp mask for character edges and a coarser one for overall text clarity) and an optional black-level clip and black & white threshold for maximum OCR contrast.
The mathematics behind a few of these stages are genuinely simple. Auto-gamma brightness solves for the exponent γ in output = 255 × (input/255)^γ such that the page's average brightness lands on a target mid-tone — γ below 1 brightens a dark page, γ above 1 darkens an overexposed one. CLAHE's contrast stretch within each tile follows the classic histogram-equalization formula s = (L-1) × CDF(r), where a pixel's new value s comes from the cumulative distribution of gray levels in its local tile rather than the whole page, then a "clip limit" caps how much any single gray level can be boosted so noise in flat regions doesn't get amplified into visible speckle. None of this requires deep learning — it's the same category of classical image-processing math that has underpinned document scanning software for decades, applied consistently and combined into one pipeline.
Under the Hood
These are the real stage order and formulas used by the pipeline running on this page — not marketing copy.
1. Deskew — same projection-profile detector as Deskew PDF, ±15° range, strength-scaled
2. Background — per-channel: bg = boxBlur3(channel, r=w/14); out = channel/bg × targetWhite(210-255)
3. Brightness — highlight = 90th-percentile gray value (proxy for paper background)
γ = ln(targetHighlight) / ln(highlight/255), target 225-255, × gamma slider (0.6-1.8)
4. Contrast — CLAHE: tile 48px, clip limit 1.0-6.0, s = (L-1) × CDF(r) per tile, bilinear blend
5. Noise — edge-aware blend toward boxBlur(r=1), weight = 1 - min(1, edgeMagnitude / 18)
6. Sharpen — unsharp: out = in + amount(0-1.4) × (in - boxBlur(in, r=1))
7. Text Enh. — coarse unsharp, r=5, amount(0-1.1), masked to mid-tone pixels only
8. Black level— out = (in - cutoff(0-60)) × 255/(255-cutoff)
9. B&W (optional) — Otsu threshold on final luminance, pure 0/255 output| Parameter | Range | Why |
|---|---|---|
| Working resolution (preview) | max 620px | Keeps sliders and mode switches responsive with a live preview |
| Export resolution | 250 DPI (3.47× scale) | Balances OCR-ready clarity against output file size |
| Output encoding | JPEG, quality 0.9 | Standard trade-off for enhanced scan-page images |
| CLAHE tile size | 48px | Small enough to adapt to local exposure differences, large enough to avoid blocky artifacts |
| Box blur passes | 3× per call | Three passes of a box blur closely approximate a Gaussian blur at a fraction of the cost |
| "Already straight" threshold | 0.3° | Matches the Deskew PDF tool's own threshold for consistency |
FAQ
References & Further Reading
Last updated: