My mind is a strange place. After getting hooked on a game on the iPad that features some fantastic pixel art, I ended up doing some browsing to see what the pixel art community had been cooking up lately and quickly found a treasure trove of tantalizing information: the names and some very brief descriptions of algorithms for scaling and rotating pixel art while preserving its detail and its essential pixelly goodness.
If every superhero has a weakness, a corollary is that every supervillain has something that will never fail to distract them. Algorithms are this for me. Being able to take some arbitrary data and do something useful to it in a fast, reliable way that produces good results every time will seldom fail to draw my attention.
Case in point: There are numerous algorithms for scaling pixel art up to higher sizes for modern displays. The goal is to do so without it looking too blocky or blurry, so each of these algorithms is made to try to preserve details (such as diagonal lines) in the original image, without straying from the original color palette. And in reading about these, I also discovered there’s an algorithm called RotSprite that can rotate images with minimal loss of detail.
This has led me down a garden path in which I’m trying to understand how image transforms work in general, because it’s a concept I’ve never understood particularly well and I’d like to know it better. Matrix multiplication is the easy part—it’s how to use the results I’ve never really understood. I’ve had a heck of a time finding source code to help me in this process, so a great deal of Googling is involved.
So far I’ve spent an inordinate amount of time on this particular problem I have no practical need to solve just yet. But such is my quest for understanding. Would-be arch-nemeses take note: If you want to
thwart delay one of my plans (not that anyone would really want to), dig up some good research on a fascinating algorithm, especially anything related to gaming or math.