Recover plaintext from pixelized screenshots with this Open-source tool
R

Recover plaintext from pixelized screenshots with this Open-source tool

Recover plaintext from pixelized screenshots with this Open-source tool

4,541 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Unblurring the Lines: Recovering Text from Pixelized Images

You've seen it everywhere: a screenshot shared online where sensitive info like names, emails, or passwords is hastily covered up with a pixelated blur. It feels secure, like the data is gone for good. But what if that pixelation is more of a veil than a vault? This open-source proof-of-concept project demonstrates that, under the right conditions, you can recover the original text from those obfuscated images.

It’s a stark reminder of the difference between true redaction and superficial obfuscation. For developers, it’s also a fascinating dive into image processing and the unintended vulnerabilities in common practices.

What It Does

Depixelization_poc is a Python-based tool that attempts to reconstruct plaintext from images where text has been obscured using a pixelation filter (like a mosaic or blur). It doesn't perform magic on any random blur; it works best on images where the original text used a known, fixed-width font (like the classic Windows fixedsys) and the pixelation block size is known.

The tool works by analyzing the pixelated blocks, generating a large set of potential character candidates, and then using a dictionary to piece together the most likely readable words from the noise. It's essentially a smart, brute-force approach to reverse-engineering the obfuscation.

Why It's Cool

The cleverness here is in the constraints. Instead of trying to solve the impossible problem of de-pixelizing any image, the proof-of-concept smartly focuses on a very common, vulnerable scenario: pixelated screenshots of terminal text or code editors using standard fonts. By limiting the search space to known characters from a specific font, it becomes a tractable problem.

It’s a powerful demonstration of an "implementation leak." The pixelation filter doesn't destroy the underlying data structure of the text; it just downsamples it. Enough original information remains in the block colors to make an educated guess. For security-minded devs, it’s a must-see example of why pixelation is not a safe method for redaction—proper solid-color blocking is.

How to Try It

Ready to see it in action? The project is on GitHub.

  1. Clone the repo:

    git clone https://github.com/spipm/Depixelization_poc
    cd Depixelization_poc
    
  2. Install the dependency (it mainly needs Pillow for image handling):

    pip install Pillow
    
  3. Run it against the included sample. The repository contains example pixelated images. You can run the script, specifying the pixelati

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 10, 2025