Staaarter

JPG Sharpener

Uploads a JPG and applies an unsharp-mask-style 3x3 convolution kernel that boosts each pixel relative to its four orthogonal neighbors, amplifying edge contrast to make soft or slightly blurry photos look crisper, with an adjustable strength slider. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-29
By Staaarter Team
editorfiltersharpenimagejpg

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.

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

Light touch-up on a resized photo

Input

A slightly soft 1200x800 JPG, amount 60

Output

A visibly crisper JPG with subtly enhanced edges

A moderate amount adds crispness without introducing obvious haloing.

Aggressive stylized sharpening

Input

A 800x600 JPG, amount 180

Output

A strongly sharpened JPG with pronounced edge halos

High amounts trade realism for a punchy, high-contrast look.

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.

References

Frequently Asked Questions