Bigshot SimpleImage
Bigshot is a Javascript library for zoomable images. The purpose of the library is to enable the presentation of much larger images than the standard HTML img
tag allows for, in a user-friendly and efficient way.
In order to present relatively huge amounts of image data without completely overwhelming the client, Bigshot uses a tiled image pyramid: Tiled, because the image is broken up into smaller squares so we only load the parts of the image that is actually visible; pyramid, because the big image is resampled at lower resolutions so we only load the minimum size that will fill the pixels on the screen that has been allocated for the image.[1] These two optimizations ensures that within an acceptable margin, we're only loading as much image data as the user actually sees. We're not loading a huge image, only to have it be displayed thumbnail-size; when zoomed in, we only load the parts of the image that are actually visible in the viewport.
Turning a huge "normal" image into this pyramid requires preprocessing, something Bigshot does via the MakeImagePyramid
command-line tool. The issues are:
While the command line tool is as easy to use as I could make it, it is still a non-trivial amount of work to run it for each image that should be made zoomable.
The image pyramid is either a set of folders, or a
.bigshot
archive file. This file can only be viewed with Bigshot.
For huge images, these downsides are more than offset by the ability to actually show the image without consuming excessive client resources. However, there is a class of images that are large enough that one would like to have the ability to zoom, but not large enough that the optimizations of creating a tiled image pyramid weigh up the added complexity.
I call these "simple" images: Essentially high-resolution bog-standard JPEG:s with the same zoom controls as the huge, more advanced, tiled, multi-resolution images. Bigshot now supports these via the SimpleImage[b]
class.
Here is an example. The image is 3008 by 2820 pixels and weighs in at 756 kB. The viewer is configured to allow up to 400% zoom, but this can of course be changed by setting the maxZoom[c]
parameter to something more appropriate.
Footnotes
[1] | This is rocket science: Image Tiling[a] at NASA's Goddard Space Flight Center |