FixPhotoQuality

Tools · August 6, 2026

The best app to fix blurry photos on one wedding frame

The best app to fix blurry photos, judged on one wedding frame: a phone one-tap, an unsharp mask, and a tool with a slider.

Before and after of a boutonniere on a wool lapel. Left is the blur damage. Right is the same photograph kept sharp.
Before and after of a boutonniere on a wool lapel. Left is the blur damage. Right is the same photograph kept sharp.

One wedding frame is enough of a test. Unblur that photo before you run the rest of the card.

I get asked for the best app to fix blurry photos as if the answer were a name. The useful answer I have is a record of one file. The file is a wedding aisle, shot as a guest, and I ran three kinds of tools on the same pixels: a phone's one-tap enhance, a desktop unsharp mask, and a photo tool that makes me look at the original and the result together. I wrote down what each one did to the veil, the glasses, the brick, the lace, and one freckle. That is the whole shootout.

TL;DR. One wedding frame, one test JPEG, three tool classes. The phone one-tap made a punchier picture and left the shake in the groom's glasses, with a halo on the veil. Unsharp mask etched the same veil and split the soft glasses into extra rims. The tool, on a mild pass, pulled the glasses toward a single rim, left the moving veil soft, and kept the freckle. A stronger pass from the same tool rearranged skin, and I rejected it because the slider made that obvious. I printed the mild pass at 5 by 7 and kept the other two as rejected experiments. The record is what happened to aisle frame 4421, not a star rating.

The frame I refused to generalise past

The raw file is 4421.CR3, 45.2 megabytes, 8192 by 5464. I shot it at 1/80 second, 85mm, f/2, ISO 800, standing in a side aisle with my elbows in, which is not a brace. The hired photographer was at the back doing the job properly. I was a guest with a camera and a slow enough shutter that the wooden door behind the couple picked up a short diagonal smear, mostly vertical, a little to the side. The bride's veil also moved. Those are two blurs in one exposure, and any tool that treats them as one blur will punish one of them.

I did not feed the raw file to each tool differently and then compare the outputs. That comparison is useless. The phone would have compressed one way, the desktop another, and I would have been scoring the export. I made one neutral conversion, sharpening off, noise reduction off, and a single test JPEG from a mild downscale: aisle-4421-test.jpg, 2400 by 1600, 1.9 megabytes, quality 80. All three tools saw that file. The CR3 stayed in camera/ and nothing wrote back to it.

The test JPEG is already a compromise. 2400 by 1600 is enough to see a halo and not enough to be the print master. I accepted that because the phone path I was testing cannot be handed a 45 megabyte raw file in any honest way. If the phone had won, I would have redone the winner from the raw conversion at full size. The phone did not win, so the test size never became a delivery size. The print came from a full-size export of the same mild treatment, aisle-4421-tool-full.jpg, 5464 by 3640, 7.4 megabytes, which I made only after the small test had told me which failure I could live with.

What the test JPEG looks like before any tool touches it, at 100 percent:

The groom's glasses are a dark rim that splits into two rims near the temple. The split is a few pixels. It is the shake.

The veil is a gray gauze against a nearly black door. The edge is soft because the tulle moved, and it is softer than the door frame. The door frame has the shake. The veil has the shake plus its own motion.

The brick is a red wall, mortar in thin lines, already a little soft, no double line I can swear to. It is the region a tool will invent texture into, because brick is a pattern and models like patterns.

The dress lace at the shoulder is real, irregular, and brighter than the rest of the dress. A tool that "clarifies" highlights will turn it into a white shape.

A freckle on the bride's left cheek is a specific mark, darker than the surrounding skin, slightly irregular. I know it from other frames that are sharp. It is my identity check. If it moves or becomes one of a set of even dots, the person has been replaced by a sharp relative of the person.

A guest in the back pew is out of focus on purpose, or at least out of focus in a way the aperture explains. That face should stay a blob. A repair that resolves a stranger's eyes in the background has invented someone.

The bouquet is white flowers against the dress. Extra petals are easy to miss. I count the large blooms once, on the test JPEG, and write "four large white blooms, one bud" in aisle-4421.txt. Any fifth bloom is a failure.

Close crop of a boutonniere on a wool lapel with blur damage, the problem this guide is measuring.
Close crop of a boutonniere on a wool lapel with blur damage, the problem this guide is measuring.
The same crop of a boutonniere on a wool lapel without the blur damage, kept for comparison.
The same crop of a boutonniere on a wool lapel without the blur damage, kept for comparison.

What the phone one-tap did

I copied aisle-4421-test.jpg to a phone and used the built-in enhance, the one-tap control in the photo viewer, then saved a copy back. The result is aisle-4421-phone.jpg, still 2400 by 1600, 2.3 megabytes. The size went up because the new local contrast is harder to compress. Nothing else about the pixel count changed. The tool did not explain itself. There is no radius, no kernel, no slider. There is a before and after inside the phone, and then there is a saved file.

At thumbnail size on the phone, the saved file wins. The door is richer. The faces separate from the background. The dress looks clean. This is why a one-tap has a reputation. The reputation is about the thumbnail.

At 100 percent on the laptop, the same file is a list of failures.

The veil has a bright rim, about two pixels, along every place the gauze crosses the dark door. The rim is not in the test JPEG. Unsharp-style outlining did it, or something that behaves like outlining. The tulle did not get less motion-blurred. It got a white drawing of its blur.

The glasses are still split at the temple. The split is brighter, so it is easier to see, which is the opposite of a repair. A doubled edge with more contrast is a worse photograph of glasses. It reads as a defect even to someone who did not see the test file.

The brick mortar is crunchy. Lines that were soft gray are now dark with a pale edge. From a distance that reads as detail. From a normal print distance on a 5 by 7 it is starting to read as grit. I do not want grit in a wall that was smooth paint-and-brick under warm lights.

The shoulder lace is a flat white patch. The irregular holes in the lace filled in. This is the clipped-highlight failure. The enhance lifted the dress and the lace had nowhere to go. I compared the patch to the test JPEG by flipping. The holes are in the test file. They are not in the phone file.

The freckle is still there, which I will give the phone. It did not move. Skin elsewhere on the cheek is smoother than the test JPEG, a light wax, not a full plastic face. The freckle surviving on a smoothed cheek looks slightly stuck on. I would not reject the file for that alone. I would reject it for the veil and the glasses.

The background guest stayed a blob. Good, and worth writing down, because I have seen one-tap tools go hunting for faces. This one did not, on this frame.

The failure mode of the class is: it sells a look, it does not undo a smear, and it gives you no intermediate step. If the test JPEG had been the only copy, the saved enhance would have become the original. I had the test JPEG on a disk. That is the only reason this class was safe to try.

What the unsharp mask did

On a desktop I ran an unsharp mask on a copy of the same test JPEG. I am not going to anoint a radius as the correct radius. I used a small one, on the order of a pixel, because the file is 2400 wide and a large radius on a small file makes balloons out of every edge. Amount was moderate. Threshold was high enough that the open skin of the cheek did not go grainy. The output is aisle-4421-usm.jpg, 2400 by 1600, 2.2 megabytes.

Unsharp mask does not know about motion. It takes an edge and adds a light halo on the bright side and a dark halo on the dark side. If the edge is a true edge, a little of that can look like clarity. If the edge is the boundary of a smear, the mask draws the smear.

The veil is the exhibit. Against the door, the gauze became a white wire. It is sharper in the sense that the wire is thin. It is less like tulle than the test JPEG was. At a 5 by 7 on my desk the wire is visible. I held the print next to a small proof of the test JPEG. The proof is soft and kind. The unsharp proof is drawn.

The glasses got worse in a specific way. Each of the two soft rims received its own halo, so in the temple area I can count more bright lines than the glasses have. I stopped counting at four and called it a failure. A mask cannot merge a doubled rim into the single rim that existed in the room. It can only decorate both ghosts.

The brick behaved like the phone's brick, a little more politely, because the threshold spared some of the midtones. The mortar is still outlined. The door frame, which is a real edge with shake in it, grew a pale outline that follows the smear rather than the wood.

The lace survived better than on the phone. I had not lifted exposure, so the holes in the lace are still holes. This is the one place the unsharp mask beat the one-tap, and it is not a small point. A tool that does not move the histogram will not clip the dress. If my only problem had been slight softness and a need to keep the lace, a careful mask at a small print size might have been the whole job. It was not my only problem. The glasses were my problem.

The freckle stayed. Skin texture stayed, a bit emphasised. The background guest stayed a blob. Four blooms stayed four blooms. Identity held. Geometry of the shake did not. That split is the failure mode: unsharp mask is an edge cosmetic. It passes an identity test it was not clever enough to fail, and it fails the edge test by being exactly what it is.

I made a second pass with the amount lower, aisle-4421-usm-low.jpg, 2.0 megabytes. The wire on the veil thinned into a faint line. The glasses still did not become one rim. Lower was less damaged and still not repaired. I do not know a mask setting that would have merged the temple. I do not think the tool contains that setting. How to fix blurry photos is the wider diagnosis. The mask is only one move inside it, and on a doubled rim it is the wrong move.

The glasses were the referee

I picked the temple of the glasses as the referee before I ran anything, and wrote it down so I could not move the goal after I saw which file looked lively. The question was: does this tool make one rim, or does it decorate the double?

The phone decorated the double. The unsharp mask decorated the double. The tool, below, partly merged it.

If I had picked "which thumbnail would a relative tap" the phone would have won, and the referee would have been a mood. I do not trust that referee on a wedding frame. Relatives tap contrast. The glasses are a fact.

What the tool with a slider did

I uploaded aisle-4421-test.jpg to the unblur tool and looked at the result beside the original, same zoom, with the slider on the temple. The first result, the stronger one, is aisle-4421-tool-strong.jpg, 2.6 megabytes. The milder one is aisle-4421-tool-mild.jpg, 2.4 megabytes.

On the strong file the temple is one rim. That is the thing the other two classes did not do. The door frame is closer to one edge. The brick is a little cleaner without a crunchy mortar halo. The veil is still soft, still gauze, not a wire. I want to be precise about the veil. The tool did not freeze the tulle. The tulle was in many places during 1/80 of a second. A result that invented one crisp veil would have been a different dress. Leaving it soft is the correct refusal.

The strong file failed the freckle. The mark on the left cheek was still a mark, and the skin around it had grown a fine, even grain of extra marks that are not in the test JPEG and not in the sharper frames from later in the evening. The original freckle also sat a little higher relative to the corner of the mouth than it did in the test file. I would not have seen that on an after-only view. I saw it because I could slide across the cheek and watch the pattern change. That is the failure mode of a strong learned pass: it can fix the glasses and replace the skin in the same file, and the glasses are what you look at if you are proud of the tool.

The mild file is the one I kept. The temple is mostly one rim, with a faint residual split if I go to 200 percent, and one rim at the size of a 5 by 7. The veil stays soft. The freckle stays one freckle, in the same place relative to the mouth. The lace holes stay holes. The four blooms stay four. The background guest stays a blob. The brick is quieter than the phone and the mask, and it did not gain a new pattern of mortar.

I am not claiming the mild file is the latent true photograph. The shake mixed the temple. The mild pass is a plausible unmixed version that survived the checks I set. The strong pass is a plausible version that failed one check. Both can look sharp. Only one got printed.

The slider is the feature that matters in this class, more than the name of the model. A tool that shows only the after is the phone class with a different engine. I have used those. They feel better than they are, for the same thumbnail reason. On this frame I needed to watch the freckle while I moved the control. Fix blurry photo is the page I used for that comparison. The custody question, where the file lives and who uploaded it, is a different essay: best app for fixing blurry photos. I did upload the test JPEG. I did not upload the CR3. That fact mattered less here than the freckle, and it would matter more on a private sitting.

I wrote the referee down before any tool ran, so a lively thumbnail could not replace it:

  • The glasses become one rim, or the tool has only decorated the double.
  • The veil stays gauze if the tulle moved on its own.
  • The freckle stays one mark, in the same place relative to the mouth.
  • Four white blooms stay four, and the background guest stays a blob.
ClassFileVeilGlassesFreckleWhat I did
Noneaisle-4421-test.jpgSoft gauzeSplit at the templeOne mark, stableThe referee file
Phone one-tapaisle-4421-phone.jpgWhite rimSplit, higher contrastStill there, cheek smootherRejected
Unsharp maskaisle-4421-usm.jpgWhite wireExtra rimsStill thereRejected
Unsharp, loweraisle-4421-usm-low.jpgFaint wireStill splitStill thereRejected
Tool, strongaisle-4421-tool-strong.jpgStayed softOne rimPattern changedRejected
Tool, mildaisle-4421-tool-mild.jpgStayed softMostly one rimSame markPrinted at 5 by 7

The print, and the file I did not replace

I printed the mild result at 5 by 7 on a matte paper I already knew, from aisle-4421-tool-full.jpg, not from the 2400-wide test. I had rerun the mild treatment from the full neutral conversion once the small file told me the freckle could survive. I checked the full file at the cheek before I sent it. The freckle matched the test. I did not assume a larger file would behave. Larger files have more room to invent.

At 5 by 7, arm's length, the residual temple split is not something I can see, and the veil looks like tulle in motion, which is what it was. The phone print and the unsharp print, made as small proofs only, show the rim on the veil against the door. A wedding picture is largely a light dress against a dark opening. That is the worst possible place for a halo and the first place a guest will look. A class of tool that draws halos loses on this scene even when the thumbnail looks lively. The door is dark, the dress is light, and the rim has nowhere to hide.

The CR3 is untouched. The test JPEG is untouched. The phone file and the mask files stay in experiments/ with names that say what they are. Nothing is called 4421-final.jpg without a suffix. "Final" is how a halo gets delivered by accident a week later when I have forgotten which one I liked on the phone screen.

I also kept a small proof of the untreated test JPEG in the box with the print, behind it, for myself. Not for the couple. For the next time I am tempted by a thumbnail. The untreated picture is slightly soft and the glasses are wrong in a way the couple might not name. The mild repair is the one I would hand them. The gap between those two sentences is the whole case for a slider, and the whole case against a one-tap on a file that has both shake and a moving veil.

Photoshop's own shake tools are a fourth class I did not put in this table. I have run them on a different frame, a rim-lit portrait, and the halos won there too, for a different reason. That write-up is fix blurry photos photoshop. I left it out of this shootout so I would not pretend one aisle JPEG is a verdict on an entire application. The verdict here is narrower. On aisle-4421-test.jpg, the one-tap outlined the blur, the mask outlined the blur, and the mild tool pass partly undid the part of the blur that was shake, while refusing the part that was the veil. I printed that. I would not print it at 20 inches. The residual split and the remaining softness in the tulle would both show, and the honest move at 20 inches is a different frame from the hired photographer, who was standing still.

Questions that come up after the file is open

Which tool class did I print from?

The mild pass from the tool with a slider. The glasses moved toward one rim, the veil stayed soft, and a freckle stayed put. The phone one-tap and the unsharp mask both drew a bright line along the veil, so I did not print them.

Does a one-tap phone enhance remove blur?

On this frame it did not. It raised contrast, smoothed skin, and outlined the smear that was already there, and the shake was still in the glasses. The file only looked repaired at thumbnail size.

When is unsharp mask enough?

When the picture is slightly soft and you will print it small, and the halo is invisible at that size. On this aisle frame the veil against a dark door showed the halo at a 5 by 7. I would not call that enough.

Is this a ranking of products?

No. It is a record of three failure modes on one test JPEG from aisle frame 4421. A different frame, a long smear, or a file I will not upload would change which failure I am willing to live with.