p

The vast, lurid possibilities of PNG glitches

Glitch art is wonderful. It has the potential to be beautiful and horrifying. The best is often both at the same time. It’s got so popular now that most of us can appreciate glitch art on a visual level. But when it comes to talking about it, well, we don’t really have a clue. There isn’t an established vocabulary surrounding glitch art so we’re left to just say “wow” or “wtf?!” We can do better. 

One person who is helping with that is Tokyo-based artist UCNV. He’s delivered a document that aims to help us understand how to glitch PNGs. If you’re anything like me, you’ve already tinkered with glitching PNGs in text editors such as Notepad or Wordpad—this is a well-known way of doing it. But UCNV refuses this procedure, saying that “it is impossible to generate glitches using simple methods” like these, adding that “you will completely fail.”

noticeable scanline distortions and degraded pixels 

This doesn’t ring true considering that you can, indeed, create glitched images this way (although success does vary). What UCNV is getting at is how fundamentally incorrect this approach to glitching PNGs has been. He knows this as he recently discovered a way around the PNG’s checksum barrier and found numerous ways to engineer glitches. It’s a significant find as, for example, JPEG glitches only really have one characteristic, “but we need many different types of samples in order to explain what a PNG glitch is,” UCNV says. He breaks down how PNGs are encoded to demonstrate how the many glitch variations are possible and can be achieved.

As you can see above: First, there is Raw Data. Then, after applying filters, we get Filtered Data. Then the image is compressed so, yes, Compressed Data. Finally, the CRC32 algorithm (the checksum) is applied in order to check for errors before producing our Formatted PNG. The point here is that you cannot glitch the fourth and final state due to the CRC32 algorithm. This is state you’re trying to manipulate with text editors. And glitching the Raw Data is exactly the same as corrupting a BMP so it doesn’t produce a glitch unique to the PNG format. This leaves us to toy with the Filtered Data and Compressed Data. 

“When ‘Filtered Data’ is glitched, it shows a distinctive effect; patterns that look like flower petals scatter around the image,” UCNV explains. “The difference between the filters become clear when the ‘Filtered Data’ is glitched. On the other hand, ‘Compressed Data’ glitches are flavored by their own compression algorithm, which is Deflate compression. It shows an effect similar to a snow noise image.”

UCNV then breaks down the five different filters applied to PNGs and shows the results of glitching each one. Doing this usually leaves the original image intact but with noticeable scanline distortions and degraded pixels in places. The five filters are: Sub, Up, Average, Paeth, and also None. None is ‘no filter’ and is pretty much useless in the glitching process. Paeth is the most dramatic when played around with as you can see below.

As mentioned, as well as these filter glitches, it’s also possible to play around with the Compressed Data to produce images like the one below (notice the “snow noise” effect).  

There are also more results to find when using transparent pixels in the process (the PNG format can handle transparent pixels without jagged edges, unlike other formats). The Adam7 algorithm can also be applied to PNGs to produce interlaced glitch effects. All of these methods are demonstrated by UCNV in his article. And due to all these possibilities, UCNV concludes that PNG is one of the best image formats to use for glitch art. “The filter algorithms are like toys,” he says, just before showing off 120 different combinations of glitch effects.

Now, you may want to play with PNG glitches yourself after finding all this out. And yes, to make the PNGs easier to play with, UCNV has created the Ruby library called PNGlitch that allows for more efficient glitching. Unfortunately, you will need a basic understanding of the Ruby coding language to use it. So, er, get learning or find another way to produce glitches. I guess it’s these types of barriers that separates amateur glitch artists from those who are a little more devoted to it, huh?

Read UCNV’s full article on “The Art of PNG Glitch” right here.