You’ve probably seen phantom tank images before, but have you seen animated ones?
I created a batch of dynamic phantom tanks—they actually move!
Everyone’s seen phantom tanks before, right? The way they appear differs depending on whether they’re displayed on a white or black background.
The principle behind phantom tanks is controlling pixel color and the Alpha channel (transparency) to make the displayed image appear as different colors against different backgrounds.
Specifically, by adjusting pixel brightness and opacity, the final displayed color varies with the background. For example, a semi-transparent black film only shows half its black color (pc * pa), while half the background color (bc * (1 – pa)) bleeds through. The combined color is pc * pa + bc * (1 – pa).
When a pixel is on a white background, it displays a specific color x; on a black background, it displays y. This gives us a formula. Let xc be the brightness of color x, yc the brightness of color y, zc the pixel’s brightness, and za its opacity. Then: xc = za * zc + (1 – za) * yc = za * zc. Simplifying, we get: xc = yc + 1 – za, yc = xc + za – 1, za = yc – xc + 1.
Common phantom tank formats are usually PNG, with a few in other formats.
Most phantom tanks are static images, though some are animated (like GIFs), but the quality is poor.
I wanted to make high-quality animated phantom tanks and thought of APNG—a PNG-based bitmap animation format.
So I found TwisterGrim’s works on E-Station, which include many differential motion images, and used them for practice.
Making animated phantom tanks is extremely tedious—you have to split the animation frame by frame, convert each frame into a phantom tank, and then compile them into an APNG. The workload is massive.
I made 128 in total and am sharing them here for everyone to enjoy. The naming format is as follows (parentheses indicate optional elements):
Author Description (Index) (Phantom Tank Parameters)
(Phantom tank parameters include: Inner image mix weight + Inner image tone scaling + Outer image tone scaling (+ Inner image desaturation + Outer image desaturation))
Unfortunately, few platforms/programs support APNG, so I’ve uploaded a few samples for you to see the effect:










I’ve packed the rest into a compressed file. To prevent online extraction attempts, I used apate to disguise the archive as an APNG (disguised once). Hopefully, it won’t be detected. Remember to download first, then use apate to restore it once (restoring too many times may corrupt the file), and finally extract (no password).
Apate download link: https://pan.baidu.com/s/19VcVY7-w0_6YetI5KNnSjQ?pwd=4egw
Image download link: https://pan.baidu.com/s/1UfRn5AzsnnY_hli7PTw0jg?pwd=y4y9
Original source: https://twistedgrim.fanbox.cc, Author: TwistedGrim

