Since the close of classes in May, I’ve found more time to work on getting into the weeds with this project and have made some forward motion.
One of my best discoveries has been that Adobe Photoshop CS 5.1 will execute the image tiling needed to allow zooming as happens in most of the typical large image presentations that I’ve found online. (For some scroll examples, see my post at Digital Humanities Questions and Answers.) Though I’ve only done it with my proof of concept section of the scroll, it was not a horribly intensive or time-consuming procedure. Strictly speaking, what Adobe has done is to bundle Zoomify capabilities into Photoshop. Using the steps described by Adobe’s help documentation, the output is not only the image tiles for my TIFF, but also an instance of the Zoomify interface for navigating around the image. My goal on this project is to come up with something that does not require that Zoomify interface, because it requires Adobe Flash Player and (two sides of the same coin) is proprietary software.
A related approach, discovered by getting a recommendation from colleague Michael Friscia, was IIPImage, an open source image server for large (as large as multiple gigapixel) images that similarly uses tiles to zoom in and out of an image. Besides not relying on proprietary technology, one big win of IIPImage is to allow for the creation of a single TIFF file with multiple resolution tiled images inside it and for the server to handle those tiles rather than needing to generate a folder structure. There’s also an Adobe help doc that helped me decide on the right settings for saving my POC TIFF in the best way. However, any way I sliced it, I couldn’t manage to save it so that IIPImage could handle it directly and still needed to install VIPS and massage the image one more time to get something that IIPImage could handle.
It was also no piece of cake getting IIPImage to work in the first place. As I mentioned on my own blog, I was running MAMP on my primary computer, and MAMP wasn’t having any part of FastCGI. Consequently, I started the work on a virtual machine of Ubuntu version 12.04 (Precise Pangolin*). I’d installed this VM for another project a while back, so some of the problems I encountered (too little storage allocated, 32-bit instead of 64-bit, etc.) were my own darn fault. But like much of the FOSS world, in my opinion, the ethos of modularity didn’t play out as well as it should have in principle. Most notably, I kept having errors that were not clearly the fault of FastCGI (required for IIPImage) or IIPImage itself. The solution, broadly speaking, was to destroy known non-working parts and build back up with tests along the way. Credit is due in part to the responsiveness of Ruven on the @iipimage Twitter account and in his forums, and in part to the many individuals who took their time to post tutorials or answer Stack Exchange questions relating to my problems.
However, hooray!, I’ve got two basic interfaces for my POC scroll image working! More exclamation points!!!
The next problems I’m going to need to work on are annotating the image in a complex manner and interconnecting overlays or transparency with the annotations. There’s already a promising model for annotations from Le Centre national de la recherche scientifique that I’d like to refine in a couple different ways, and a possible model for overlays from the e-Mouse Atlas Project in Edinburgh. What I think will be a smaller problem is what to do with something of significant (in an image sense, at least) horizontal scale like this emakimono I’m working on. At nearly six feet long, it’s not clear yet whether it will be preferable to break it up into sections or to just jam the whole thing onto the screen and rely on the zooming and panning. Solving that problem will go hand-in-glove with my expectations of making this whole kit and kaboodle work on mobile devices, with some focus on tablet-size devices.
* Side note about version names. Just as Apple is running out of room with its feline monikers, what will Ubuntu do for the version after Zesty Zebra? [return to text]