I’ve always had a problem with retro camera filters. Taking pictures with increasingly better modern phones’ cameras and then rubbing digital dirt on them and leaving them virtually out in the simulated sun always seemed to me to be about the conflict between stark perfection and the quality of memory. We remember the past as slightly faded, orange-tinged photos, and Instagram and others provide a taste of that sense.
I see many fewer artificially aged or worn pictures these days, and the range of filters has expanded into a greater array of interesting photographic effects. The Iconfactory’s new
BitCam, a nostalgic dithered camera app, would at first seem to be another filter and just a gimmick. It accurately reproduces the look and feel of a 1984-style Macintosh app down to using a similar dithering algorithm to what Bill Atkinson baked into the graphics-primitive QuickDraw system that drove the graphical user interface and drawing programs—and that’s now also baked into iOS (part of its Accelerate framework).
But BitCam isn’t a gimmick: Atkinson dithering is an aesthetic, and it’s not an accident that Atkinson himself left programming as a full-time profession to
focus on his photography decades ago. BitCam is a loving tribute, down to the 1996-era Web page design, that also lets you take pictures that say something differently than any other camera app.
BitCam (free on the
App Store) came out just a few weeks ago, and then was joined by
Exify ($2 on the
App Store), an app that examines photos stored in iOS and extracts and displays in graphical and list form all of the underlying metadata, including location, autofocus, and camera settings. The two make a neat pair, even though the purposes are entirely unrelated.
Dithering is a technique that allows conversion from a higher-resolution form to a lower-resolution one by introducing noise to override the “quantization error,” which results otherwise in visible bands and artifacts in images and extraneous or distracting tones in music.
In image processing, dithering takes a tonal value and converts it into a concentration of dots that fools the eye into interpreting the approximate shade. The classic Atkinson dither was originally used to convert grayscale and color images and some graphics into 1-bit bitmaps.
Atkinson tweaked older dithering routines to improve the mid-tone areas in order to avoid discontinuity. The rounding errors of conversion have to be diffused into surrounding areas, but precisely in which directions and how far they ripple outward will dramatically affect the resulting image. Think of it as an analog to image feathering, where an edge is turned from sharp and jagged to smooth.
Atkinson said via an email interview, referring to the way the algorithm alternates direction in processing lines of pixels from the original, “Turns out when you are propagating right and down, the left and down propagation is essential to break up standing waves that create ugly streaking rivulets.” He noted that to create the QuickDraw dithering routine, he wrote a program that tested many different weighted variations of standard dithers, and picked the one generated the most pleasing result.
He explained further, “One of the hardest tasks is getting from a little lighter than 50 percent gray to a little darker, with no discontinuity or artifact.” (As an aside,
Susan Kare, the designer of the original icons used in the Macintosh, recalled via a spokesperson that she saw Atkinson’s experiments, but didn’t consult on them. Her 1-bit drawings are
handtooled works of art.)
Craig Hockenberry, the lead developer on both BitCam and Exify, said he was excited to find out Atkinson’s algorithm was in iOS—developer
Wil Shipley tipped him to the fact—and he pulled out a separate camera app he’d worked on, which became the basis of BitCam.
“It thrilled me to know that some code—obviously not the same code, [as] it’s running on the CPU, and it’s vectorized—but an algorithm from 1984 is running in my pocket,” Hockenberry said by phone. He noted that Apple’s developers stuck a tiny tribute into the header file of the iOS code for one flag: “Atkinson dithering is applied to the image, for the old timers.”
Hockenberry said that Atkinson dithering isn’t perfect mathematically, which is the point. “It looks a lot better to your eye” than an exact conversion, and improves on other dithers by offering higher contract. Atkinson’s method can blow out highlights to white and fill in shadow detail to black, but the midtone preservation matches photographs better.
(Atkinson installed BitCam and told me the dithering isn’t identical to his eponymous version. Hockenberry said there’s a difference in how error diffuses—Atkinson dithering is serpentine, alternating direction line by line, while Apple’s implementation isn’t. He’s submitted a bug report to Apple in the hopes it will be fixed.)
When you launch BitCam, it shows the simplest possible interface, with blocky original Mac style graphics. Tap the gear icon, and a dialog box appears with the familiar ZoomRects animation, showing what was once an cutting-edge effect. Because iOS is so much more sophisticated at layering elements, Hockenberry said the app has to take about 10 screenshots and to draw in and simulate the ZoomRects effect. “What used to be the most efficient way is now the least efficient way,” he said.
BitCam defaults to Standard dither, but can be configured to use Super-Res with more detail or FatBits, which is very coarse. For a $2 in-app purchase, you can enable “Color Graphics,” which combines deep color and dithering. The app can also be flipped into selfie mode and set up for “Instaphoto Size”—square-cropped images.
While the app can be invoked in a Share sheet within the Photos app, the effect isn’t applied exactly right because it manipulates the original full-resolution image instead of a downsample one. Iconfactory is working on that.
Exify comes at photography from an entirely different angle. An iOS device crams a ton of metadata into each image it takes. You may not realize quite how much, because most of the software you use doesn’t expose it or takes advantage of only a tiny subset. What’s shown can also help you make a spot judgment about whether to take another shot of the same scene, too.
There are other apps that reveal the EXIF (exchangeable image file format) photo information and other embedded details, but Exify is the most stylish and complete I’ve used. It organizes information into as many as six separate screens. Each screen has a kind of extra view when you tap an eye icon in the upper right.
Overview shows basic information, like format, and resolution, as well as a preview of the image and the auto-focus region, if one’s encoded. Tap the image, and it fills the display, but also opens up a variable magnification window, which can be double-tapped to cycle among 1x, 2x, and 4x. Tap the eye icon, and you can sample specific points on the image for luminosity and color values. A Histogram view reveals the distribution of luminosity and color information, and also lets you sample points by tapping the eye.
Location uses Apple Maps to show position and heading; a later GPS screen pulls out every GPS-related factoid. The EXIF and TIFF screens reveal the massive amount of image-specific data captured, and tapping the eye toggles between more human-readable rounded-off values and text labels for codes and the raw data. (The TIFF metadata format gets used even with JPEG images.)
Exify also exposes extensions for editing in Photos, allowing you to add a text watermark, and as Share extensions to duplicate, zoom in, and see values as if you were in Exify.
Keeping both eyes open
Despite these two new apps from the Iconfactory, like many app developers, the company most does private-label app programming. It also designs icons like mad, such as
a recent massive project for Facebook Messenger that comprised over 1,200 emojis.
BitCam and Exify are the kinds of apps we’d all like to see more of from independent developers. Let’s hope some incentives continue to exist that will keep them coming.