You take a screenshot of a bank transfer to prove you paid, smudge the account number with a blur, and send it. It looks unreadable. The trouble is that "unreadable to you" and "unrecoverable" are different things. Blur and pixelation do not delete information, they summarise it, and a summary of text in a known font can often be matched back to the text. This article shows that with a small experiment, explains when a blur is good enough, and lists the other ways a redacted image leaks.
The experiment uses the same pixelation code as our blur and redact tool, which works in your browser and never uploads the picture.
What pixelation actually does
Pixelation divides an area into square blocks and replaces every block with the average colour of the pixels inside it. A 4 by 4 block of black and white text pixels becomes one grey square whose shade says how much "ink" was in that block. A blur does something similar with overlapping neighbourhoods: each output pixel is a weighted average of the pixels around it.
Neither operation is random. The same input with the same settings always produces the same output. That determinism is the weakness. If an attacker can guess what the hidden text might be, they can render each guess in the same font and size, apply the same effect, and see which guess produces exactly the picture they were sent. They never need to "unblur" anything. Published tools such as Depix work on this principle for pixelated screenshots.
An experiment with a four-digit PIN
To see how much survives, we drew the PIN 4071 in a simple bitmap font, each digit 10 pixels wide and 14 pixels tall, black on white. We pixelated it with the tool's own function at several block sizes, then rendered all 10,000 possible PINs from 0000 to 9999 the same way and counted how many produced an identical result.
| Block size (pixels) | Compared with the digit height | PINs that match the pixelated image |
|---|---|---|
| 2 | much smaller | 1 (only 4071) |
| 4 | under a third | 1 |
| 7 | half | 1 |
| 14 | equal | 3 (2071, 3071, 4071) |
| 24 | larger than a digit | 12 |
| 48 | the whole number in one block | 528 |
Up to a block half the height of the characters, the mosaic identified the PIN uniquely. Even with blocks as tall as the digits, only three candidates were left, and a person can usually try three. With the entire number averaged into a single grey square, which nobody would call readable, the search still dropped from 10,000 candidates to 528, because the average grey still reveals how much ink the digits contain.
This was a best case for the attacker: a clean bitmap font, known position, no compression. Real screenshots add anti-aliasing and JPEG noise, which makes matching harder but not hopeless, and real secrets are often short and drawn from a small set (a PIN, a date of birth, the last digits of a card). Short secrets are exactly the ones a guessing attack handles best.
How strong is "strong"
The tool scales its effects with the picture, so that a setting means the same on a phone photo and a large screenshot. The blur radius is the strength as a share of 5% of the shorter side, and the pixel block is a share of 4%:
| Picture | Strength 20 | Strength 40 | Strength 100 |
|---|---|---|---|
| 1920 × 1080, blur radius | 11 px | 22 px | 54 px |
| 1920 × 1080, pixel block | 9 px | 17 px | 43 px |
| 800 × 600, blur radius | 6 px | 12 px | 30 px |
| 800 × 600, pixel block | 5 px | 10 px | 24 px |
Body text in a 1080-pixel-tall screenshot is often 14 to 20 pixels tall. A strength of 20 gives 9-pixel blocks, about half the letter height, which the experiment above shows is not enough. That is why the tool labels any blur or pixelation under strength 40 as weak and suggests solid black for anything that must stay secret.
The safe choice: a solid box
A solid black box replaces every pixel in the area with the same opaque colour. There is nothing left to compare against: every guess produces the same black rectangle. The only things a box still reveals are its position and its size, which can hint at how long the hidden text was. Draw the box a little wider than the text if the length itself matters, for example on a name.
Use blur where the goal is visual, not secrecy: softening a face in a crowd for a blog post, hiding clutter in the background, or making a busy area less distracting. For numbers, names, addresses, codes and anything legal or financial, use a box.
Leaks that have nothing to do with blur
- Covering instead of replacing. A black rectangle drawn in a PDF editor or an annotation layer can sit on top of text that is still there. Select, copy, or delete the shape and the text comes back. Redact by changing the pixels, then save a new flat image.
- Cropping that keeps the original. In 2023 a flaw nicknamed aCropalypse showed that some phone and Windows screenshot editors overwrote the start of the file but left the rest of the original image in place, so parts of a cropped area could be recovered. Export a fresh file rather than saving over the original.
- Embedded thumbnails and metadata. Some cameras store a small preview image and GPS position inside a JPEG. An editor that changes the main picture but copies the metadata can ship the unredacted preview along with it. Our tool redraws the picture into a new file, so no metadata or preview is carried over; for other pictures, see how to remove GPS location from photos.
- Other copies. Reflections in glasses or windows, a second screenshot in the same thread, the same document visible in another tab, or the same text in the file name.
- Partial covers. A box that misses the top of tall letters or the tail of a
gleaves enough shape to read. Zoom in on the result before you send it.
A short routine
- Draw a solid box over each secret, slightly larger than the text.
- Use blur only where you are hiding something for appearance, and keep the strength at 40 or above.
- Export a new file and open the exported file, not the editor view, to check it at full size.
- Check the file name and the message you are sending with it.
The blur and redact tool does steps 1 to 3 in the browser. If you also need to shrink or convert the result, the image toolkit does that locally too.