Giorgio Sardo Blog

Senior Director of Windows, Windows Phone & XBOX Technical Evangelism & Development at Microsoft Corporation

Deep Zoom Batch Export using C# - Update

Deep Zoom Batch Export using C# - Update

Rate This
  • Comments 11

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: ,,
Page 1 of 1 (11 items)