Jpeg Engineering

Now, we all know that it’s our DNA that controls our physical characteristics.  DNA contains the information which determines how we develop from fertilized egg to adult.  DNA, in turn, is literally coded instructions similar to binary computer code.

DNA is encoded using sequences of four different amino acids grouped into pairs.  The arrangement of those four variables ultimately controls the synthesis of proteins and all other more complex structures and assemblages which together make up the entire human body or the body of any living thing.  What you look like (and other physiological things) is the result of this simply constructed, but lengthy and intricate, DNA code.  The code creates the body.

Now imagine doing experiments with that code and then being able to quickly see what the results would be.  Swap a few genes to change your hair or eye color.  Or maybe, load your DNA code into a text editor and do search and replace on sequences wherever they happen to occur.  Swapping this for that wherever “this” appears.  Or maybe just picking any arbitrary sequence and replacing it with the same sequence in reverse order?   And then quickly being able to see what sort of mutated creature results.  Wouldn’t that be fun?

Jpeg files, as anyone who’s accidentally opened them in a text editor knows, are just such a collection of codes, although, once again, not exactly the same as DNA, but having the same effect.  The various numbers and symbols in a jpeg file are the stored information that tells your computer monitor what to display –the code creates the picture.

Glitch-Nine by Luke Roberts, 2006 (Originally a wall texture photo)

Alright, now imagine doing search and replace on the jpeg code, swapping hexadecimal symbols with other symbols and then viewing what the altered file now looks like.  This is literally changing the DNA of the jpeg image like one would roll dice because surely one has no idea whatsoever what the results of such reckless scrambling of the encoded image information will be.

From the Flickr page:

A series of images created by modifying the code of JPEG images.

Created with Hexplorer mostly by using the “find and replace” tool to find a certain hex combinations (usually about two characters works best) and replacing them with something else.

items are from between 08 Feb 2005 & 21 Jun 2006.

Here’s a few screenshots of Hexplorer from the Hexplorer page at Sourceforge:

Hexplorer Screenshot from Sourceforge

Hexplorer Screenshot from Sourceforge

I’m sure there’s other programs that can be used to edit hexadecimal code, but this is the one Luke Roberts used to create the images displayed here.  I assume all one would have to do is save the altered file and then reload it in an image viewer to see the results.  Just like editing the html of web pages and viewing the changes in a browser.  This is literally, “painting by numbers”.

Glitch Three by Luke Roberts, 2006

Luke Roberts has this to say about Glitch Three (from his Flickr page):  “With Hexplorer, if you replace 1 with 0 or something similar to that (like 2 with 8 or something) this is what the image usualy turns out like.”

Only in the digital medium could such Frankensteinian methods be used.  It reminds one that the digital medium is in many ways nothing at all like the traditional, hand-made medium of oil paintings and clay sculptures.  Digital is much more fun and rewards those who experiment.

Glitch Eight by Luke Roberts, 2006

Glitch Eight: “My favourite of my glitch works so far. It’s a self portrait originally. I like the colours and the fact that you can see a bit of hair and my eye. ”

Glitch Four by Luke Roberts, 2006 ("another self portrait")

Glitch One by Luke Roberts, 2006

Luke Roberts calls this “Glitch” art, but I think a better name is Jpeg Engineering (or editing) because to me it more resembles Genetic Engineering than the reckless crashing of electronic devices which is what I would normally expect in the creation of Glitch Art.  Although I guess the unintended consequences of editing the hexadecimal codes is in keeping with the malfunctional nature of glitches.

This is just an amazing idea and I’m going to have to try it out myself.  I don’t know why I didn’t think of this before.  The hexadecimal code is really like the parameter file of the picture and controls the pixels.

When it comes to digital art, think pixels, not pictures.


If you’re interested in looking at more of Luke Roberts’ work, his Glitch Art set is here where you can view all 12 images in the set at a larger size.  His main Flickr collection is here which contains photography which, as it turns out, is what his main artistic interest is and not the editing of jpeg hexadecimal files.  He also has a website at

How comments work: After the approval of your very first comment you will be able to post future comments immediately to any posting. Any username or fictitious email is good enough.

3 thoughts on “Jpeg Engineering

  1. An interesting idea, but one that has to be done carefully. There are a lot of values at the beginning of such files that should not be altered if they are to be displayed. This technique would do best to take place within the “image data” only, and modify nothing else. And one would also need to know the version of graphic file format being changed as well.

    I remember coding up a .BMP file from scratch using nothing but hexadecimal values, just to get an image to appear. Never thought about doing such a haphazard type of alteration to an existing graphic.

    Now, graphic “filters” do something similar, but they are using specific algorithms to make the modifications.

    Good luck when you “try it out”, and play with other file formats as well.

  2. Yeah, I tried it with a hex editor and both attempts resulted simply in a file that couldn’t be read. Of course, I had made over 600 replacements of one hex set for another, so maybe I went too far.

    Another thing; I noticed that Luke Roberts’ images were mostly “stripy” looking, which suggests to me the technique is rather limited. I guess the file format works in stripes or bands. I’ll probably stick to filters. But the concept is interesting.

  3. I imagine that Luke Roberts’ images were striped due to values being altered that should not have been. I wonder how many failed attempts he created just to get a few that were readable by a graphic editor.

    This is when a good reference book, such as the “Encyclopedia of Graphics File Formats” comes in handy. (several online copies available)

Comments are closed.