private void Build(PivotCollection collection, Stream stream) { try { int mortonStart = MortonHelpers.LevelXYToMortonStart(Level, X, Y, AllTileDefaults.CollectionTileMaxLevel); // Draw the sub-tiles into the tile int subTileCount = MortonHelpers.LevelToSubTileCount(Level, AllTileDefaults.CollectionTileMaxLevel); int subTileSize = AllTileDefaults.CollectionTileSize / subTileCount; using (CollectionTile tile = new CollectionTile(AllTileDefaults.CollectionTileSize, subTileSize)) { for (int subTileX = 0; subTileX < subTileCount; ++subTileX) { for (int subTileY = 0; subTileY < subTileCount; ++subTileY) { int uniqueID = mortonStart + MortonHelpers.XYToMorton(subTileX, subTileY); Item item = collection.FindItem(uniqueID); if (item == null) continue; ImageProviderBase imageProvider = item.ItemImage.GetImageProvider(); tile.Draw(imageProvider, subTileX * subTileSize, subTileY * subTileSize); } } tile.Save(stream, ImageFormat.Png); } } catch (Exception ex) { ex.GetType(); } }