Deep Zoom Batch Export using C# - Update

In a previous post I’ve showed how to automate the exporting process of a DeepZoom composition or collection. Meanwhile the Microsoft DeepZoom Composer tool has been updated (and new features have been added too!), breaking my previous sample.

Given the positive feedbacks I received from the previous post, I’ve decided to do some refactoring and updates to the previous solution. The current implementation include:

  1. Class Library: it encapsulate all the wrapping methods of the SparseImageTool.
  2. Test Project: it shows how to use the library. The library can be used from WindowsForms/WPF/ASP.NET….as long as the machine has the SparseImageTool installed.

You can download the updated library and source code here.

The new class diagram is like so:

ClassDiagram

Given a directory containing all the images and a name for the collection, it’s now really easy to create programmatically a collection.

    1: static void CreateCollection(string collectionName, string sourceImagesFolder, string outputFolder)
    2:         {
    3:             // Create a collection converter
    4:             CollectionConverter collectionConverter = new CollectionConverter();
    5:             // Required parameters
    6:             collectionConverter.SparseImageToolPath = GetSparseImageToolPath();
    7:             collectionConverter.ImagesCollection = GetImages(sourceImagesFolder); // IEnumerable<string> containing the path of the images
    8:             collectionConverter.ImagesDestinationFolder = outputFolder;
    9:             // Optional parameters
   10:             collectionConverter.CollectionName = collectionName;
   11:             collectionConverter.CollectionFormat = CollectionConverter.CollectionFormats.XML;
   12:             //collectionConverter.ConvertedOverlapPixels = ...
   13:             //collectionConverter.ConvertedTileSize = ...
   14:             //TODO: You can customize the exporting experience here, by setting the according parameters such as:
   15:             // Tile Size, File Format, Collection Format, Compression, Quality, ...
   16:  
   17:             // Attach to completion handler
   18:             collectionConverter.BatchCompleted += delegate
   19:              {
   20:                  Console.WriteLine("Conversion completed\nPRESS <ENTER> TO EXIT");
   21:              };
   22:  
   23:             try
   24:             {
   25:                 collectionConverter.BatchCollectionExport();
   26:             }
   27:             catch (Exception e)
   28:             {
   29:                 Console.WriteLine(e.Message);
   30:             }
   31:  
   32:             Console.WriteLine("Conversion started...");
   33:             Console.ReadLine();
   34:         }

You can download the updated library and source code here.

Have fun!

Technorati Tags: Silverlight,Deep Zoom,C#