Hello DeepZoomTools.DLL : Deep Zoom Image Tile Generation Made Easy
In our most recent release of Deep Zoom Composer, one of the major changes we made was to change how we generated the image tiles both for designing as well as exporting your Deep Zoom Content. In the past, ever since our first release at MIX, our image encoding was done using a combination of SparseImageTool.exe and ImageTool.exe command line tools. Starting with this release, we have retired those tools and have shifted to a preview version of a .NET based DLL that provides image generation capabilities.
If you look inside your Deep Zoom Composer installation folder, which is by default, [Program Files]\Microsoft Expression\Deep Zoom Composer, you will see a file called DeepZoomTools.dll:
This DLL contains all of the functionality needed for you to generate image tiles for compositions and collections. The classes and methods that you can use are as follows:
public enum ImageFormat { Jpg, Png, Wdp }; public class Image public Image(string path) public double MaxViewportWidth public double MinViewportWidth public string Path public Point ViewportOrigin public double ViewportWidth public class ImageCreator public ImageCreator() public double ImageQuality public int TileSize public int TileOverlap public ImageFormat TileFormat public bool CopyMetadata public void Create(string source, string destination) public class CollectionCreator public CollectionCreator() public double ImageQuality public int TileSize public int MaxLevel public ImageFormat TileFormat public bool CopyMetadata public void Create(ICollection<Image> images, string destination) public void Create(ICollection<string> images, string destination) public class SparseImageCreator public double ImageQuality public int TileSize public int TileOverlap public ImageFormat TileFormat public Color BackgroundColor public bool CopyMetadata public void Create(ICollection<Image> images, string destination) |
The API should be pretty straightforward. A DeepZoomTools.Image is the internal notion of a Deep Zoom image, and it contains all of the information such as the viewport widths, path to source image, origin, etc. ImageCreator is used to define an image and write the image tiles to disk. CollectionCreator and SparseImageCreator take a list of image paths and write the image tiles to disk.
When I was playing with this, the one thing that confused me was what CollectionCreator expected as its “image path”. It isn’t a string of paths to raw JPG, PNG, etc. files. It is actually a path to the Deep Zoom Image created via ImageCreator/SparseImageCreator. SparseImageCreator does take in a list of paths to the source image, so passing in a list of image files will work for generating sparse images (aka Compositions).
Do note that this DLL is a pre-release version, and the Live Labs team will decide when and how to more formally release this in the future. Even though Deep Zoom Composer uses this same DLL, there may be future releases of this DLL that are independent of Deep Zoom Composer releases.
Thanks,
Kirupa