Overview
Introduction
This tool sharpens a JPG entirely client-side using a classic unsharp-mask-style convolution kernel.
It's a quick way to make a slightly soft photo look crisper before sharing or printing it, with a single strength slider controlling the effect.
What Is JPG Sharpener?
A client-side JPG sharpening tool that reads an uploaded photo's pixel data and applies a 3x3 'plus' convolution kernel: each pixel is boosted relative to the average of its four orthogonal neighbors.
The strength of that boost is controlled by an adjustable amount, so you can dial in anything from a subtle touch-up to an aggressive edge-enhancement effect.
How JPG Sharpener Works
For every pixel, the tool reads its up/down/left/right neighbors (clamping at image edges) and computes a new value as `center * (1 + 4k) - k * (sum of neighbors)`, where `k` is derived from the amount slider.
Because differences between a pixel and its neighbors are amplified, this pushes contrast up specifically at edges, where those differences are largest, while leaving flat regions nearly unchanged.
When To Use JPG Sharpener
Use it on photos that came out slightly soft from a phone camera or webcam, or on images that were resized down and lost some crispness.
It's also useful as a finishing touch after other edits like resizing or color correction, since resampling operations often soften edges slightly.
Often used alongside JPG Blurrer, JPG Contrast Increaser and PNG Sharpener.
Features
Advantages
- Runs entirely client-side; the uploaded photo is never sent to a server.
- Adjustable strength from a subtle touch-up to a strong edge-enhancement effect.
- Fast, single-pass convolution with no external dependencies.
Limitations
- Cannot recover detail from a photo that's genuinely out of focus or low-resolution.
- Excessive sharpening amplifies noise and JPEG compression artifacts along with real edges.
Examples
Best Practices & Notes
Best Practices
- Start with a moderate amount (50-100) and preview before committing to a stronger setting.
- Sharpen after resizing, not before, since resampling itself softens edges.
Developer Notes
sharpenJpg operates on a plain PixelBuffer and applies the kernel with edge-clamped neighbor lookups (no out-of-bounds sampling); alpha is copied through untouched since the actual JPG export flattens it separately in JpgPreviewPanel.
JPG Sharpener Use Cases
- Crisping up a slightly soft phone photo before sharing
- Restoring perceived detail after a resize
- Adding a punchy, high-contrast stylized look
Common Mistakes
- Expecting sharpening to fix a genuinely out-of-focus photo.
- Setting the amount too high and introducing visible haloing around edges.
Tips
- Combine with a mild noise reduction pass first if the source photo is grainy, since sharpening amplifies noise too.
- Compare before/after at 100% zoom, since sharpening effects can be subtle at small preview sizes.