Skip to end of metadata
Go to start of metadata


Notes on points

  1. IIP Server vs DeepZoom: IIP Server uses pyramidal TIFFs which are largely recognized by many tools and libraries. DZI format used by DeepZoom (and Seadragon Ajax) is mostly dealt with by MS tools. Hence the difference in Image Preparatton section.
  2. Seadragon Ajax license seems to prevent us from publishing our changes in code - if we make such. It also states:

    modify or distribute the Software so that any part of it becomes
    subject to an Excluded License. An Excluded License is one that
    requires, as a condition of use, modification or distribution,
     - the code be disclosed or distributed in source code form; or
     - others have the right to modify it.

    I am not an expert but this seems to limit the license we are going to be able give to other developers to use our code/tools.
    This is why I have given less points in the Open Sourcen section.

  3.  Maturity: IIP Image seems to be the oldest thing around. It has been used in number of similar projects. Documentation is not great but there are numerous examples of different features. Latest version is the 2.0 beta from August 2011. Since then there has been some activity on the forum but the beta has not been finalized into an official release. I have contacted Ruven on the forums and he has responded really fast. Seadragon Ajax has very good documentation on its API and examples. Yuma.min.js has been around since Nov 2011 and is still 0.3 version. It has not been used on any production project yet and we are yet to see if creators will keep their enthusiasm until they get a major release. They are looking for funding currently. SVG-edit and Raphael are quite popular and widely used. Raphael has decent API documentation.
  4. Portability. I have given most points to JavaScript libs/tools as they only depend on browser's JS support. JavaScript has good developers base. Yuma is developed in GWT. While the platform has its fans, it is proprietary and the GWT developers are far less than the JavaScript developers. Flash and Java are somewhere in the middle.
  5. Annotations/shapes. The IIPMooviewer beta has support for annotations - though it is only for display. These are rectangular elements (divs) placed and scaled on the image. There is no GUI for creation/edit. Seadragon Ajax has the concept of an overlay - its API allows any HTML element to be placed over the image. It is a more friendly way than IIPMooviewer's but it still allows mostly for rectangular shapes. There is no GUI for creation/editing. Yuma + Seadragon has the creation GUI. There has been a suggestion to use "<area shape=..." for creating complex shapes but these elements are not visible on the screen. Their main purpose is to create links to other pages and border/color styling does not seem to have effect on them. SVG, on the other hand, allows for all kinds of vector drawings. See svg-edit demo here:
  6. Image overlay. IIPImage has built-in overlay and blending functionality supporting deep zoom though it seems to work for same-size images. It also has synchronized viewers for comparing pictures side by side. Seadragon Ajax does not have that but using overlays one could put a smaller image somewhere and scale it (not deep zoom though) over a large picture. If we need enhanced layers functionality - like putting elements/annotations in different layers, making layers visible/invisible etc. - we need to look into SVG.
  7. Rotation. IIPMooviewer has image rotation. It is client side - this means that it get the tiles that currently are showing and rotates just them. On zoom in/zoom out rotation transformation is removed. It is implemented by using CSS. It does not support rotation for individual annotation shapes. Seadragon Ajax does not seem to have this feature. Overlayed elements could be rotated programatically via CSS as well.
  8. Flash and Java IIP Image viewers. I have not looked into details into these. They get their points mostly due to fact that these are technologies that allow for rich GUI and image manipulation. Java has a decent 2D API that allows for pretty much anything. Both viewers are a bit old and they don't support annotations. We have good experience with Java and have almost no experience with Flash.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Feb 23, 2012

    Edit annotation regions? Is that a requirement?

    1. Feb 27, 2012

      I agree with the assessment. IIP with javascript (ajax) seems to fit the client requirement the best. Please also not the requirements regarding general architectural approach in the specification, partiuclarly the use of REST.


  2. Mar 23, 2012

    Jana 23-2-2012: please add comments on the matrix and probably more tools. I am not sure what the Seadragon Ajax license really says but I am afraid it might not be too suitable. Can we ask an expert?

    Vlado 1-3-2012: despite the somewhat unclear license, Seadragon Ajax is in fact open source under a very liberal New BSD license! As part of the Ajax Control Toolkit (ACT)
    Of the many deep zoom interfaces to have emerged over the last few years for viewing high-resolution images on the web, Microsoft’s Seadragon is both one of the most beautiful and easiest to use. Unlike many of its competitors, the software seamlessly transitions between zoom levels without noticeably replacing the tiles, an effect that is arguably both more aesthetically pleasing and more functional than a page refresh as the user need not relocate their position each time a new zoom level loads. Additionally, Microsoft has provided a *well-developed code library for annotating images and binding regions* of the image to particular actions when clicked.
    Cutting the large source image into a Deep Zoom Image (or DZI) tile set... By far the easiest way to do this is through Microsoft’s Deep Zoom Composer, a Windows-only, free, but proprietary piece of desktop software. However, there are also a set of third party tools, some open source, which can also generate the tiles on Macintosh and Linux machines.