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:
- Class Library: it encapsulate all the wrapping methods of the SparseImageTool.
- 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:
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#