View Source

[^image-tools-comparison.xlsx]
!image-tools-comparison.png!

h4. Notes on points

# 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.
# Seadragon Ajax license seems to prevent us from publishing our changes in code - if we make such. It also states:
{quote}
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,
that
 \- the code be disclosed or distributed in source code form; or
 \- others have the right to modify it.
{quote}
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.
#  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.
# 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.
# 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&nbsp;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:&nbsp;[http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html|http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html]
# 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.
# Rotation.&nbsp;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.
# 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.