An application that generates art by inserting text at random points in the image file.

Project maintained by tig Hosted on GitHub Pages — Theme by mattgraham

JPG Corruptor

Copyright © 2012 Charlie Kindel (@ckindel on Twitter)

Licensed under the MIT License.

Version 1.3

Home Page

Download for Windows

A digital art experiment.

JPG Corruptor has been inspired and commissioned by my brother-in-law who is an art student. He is using it for a project in an art class.

The idea is to create a "movie" of a JPG file being corrupted through the overwriting of JPG binary data with words from the text of a book. It turns out that most JPG files are quite reslient to such corruption and the resulting images, when rendered, can be quite interesting. This application takes a text file and a JPG file and displays each iteration of the JPG file as it is corrupted by the words in the text file.

The JPG file is "corrupted" by randomly overwriting data in the file with the words in the text file.

Example output
Example JPG Corruptor Output; What this image looks like after being corrupted by the first two chapters of The Great Gatsby

Watch a video of JPG Corruptor in action:



Version History

Future work

Queing Multiple Files

JPGCorrupt supports running through a list of text/image file pairs sequentially. The list of files to be process are listed, in the order they will be processed in the JPGCorrupt.settings file. For example:

<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsi="" xmlns:xsd="">
    <TextImagePair TextFile="C:\Users\charlie\code\JPG-Corruptor\Short Test.txt" 
                   ImageFile="C:\Users\charlie\code\JPG-Corruptor\testimage.jpg" />
    <TextImagePair TextFile="C:\Users\charlie\code\JPG-Corruptor\Long Test.txt" 
                   ImageFile="C:\Users\charlie\code\JPG-Corruptor\The-Great-Gatsby-upres.jpg" />

The above JPGCorrupt.settings file will cause JPGCorrupt to start full screen, processing Short Test.txt with testimage.jpg and Long Text.txt with The-Great-Gatsby-upres.jpg, in order. It will then continue to loop until the ESC key is pressed.