A holiday gift

December 27, 2017

By Jeff Johnson

Unless your eyes are really good, you can't see the individual pixels of an image. (How many RGB am I holding up?) For those of us with non-retina retinas, I've written a new open source command line tool called jixel to print detailed information about an image file, including the color values of every pixel. The "j" in jixel stands for … you should know by now. The source code for jixel is my gift to you this unspecified holiday season. The best gifts are homemade, aren't they? Especially when they're cheap. And I'm cheap.

Have you ever wanted to diff two versions of an image file? The binary file format of images can make a diff, err, difficult. But what if you could translate an image into a text format? Then you could use existing text diff tools to compare versions. This is one of the goals of jixel. The output of jixel was designed to make it easy to textually diff pixel-level changes to an image. This allows a text-pushing programmer to review the work of a pixel-pushing designer when image changes are checked into version control. Those designers are a sneaky bunch, you have to watch them like a hawk!

jixel is currently in alpha testing. (Pun intended.) There are some code paths that have not yet been tread. Every image that I've been able to find so far has been kCGColorSpaceModelRGB with 8 bits per component. In other words, "True color" images, in marketing speak. Or "millions of colors" in Apple marketing speak. I don't know whether jixel correctly handles 16 and 32 bits per component. If you find any bugs, please open an issue.

This is my last blog post of the year. 2017 has been, let's just say, a year. Here's hoping that 2018 is, well, not 2017. See you on the other side!