CreateAndSaveThumbnailImage
(
IGraph oSubgraph,
String sVertexName,
CreateSubgraphImagesAsyncArgs oCreateSubgraphImagesAsyncArgs,
TemporaryImages oThumbnailImages
)
{
Debug.Assert(oSubgraph != null);
Debug.Assert( !String.IsNullOrEmpty(sVertexName) );
Debug.Assert(oCreateSubgraphImagesAsyncArgs != null);
Debug.Assert(oCreateSubgraphImagesAsyncArgs.CreateThumbnails);
Debug.Assert(oThumbnailImages != null);
AssertValid();
if (oThumbnailImages.Folder == null)
{
// Create a temporary folder where the thumbnail images will be
// stored.
String sTemporaryFolder = Path.Combine(
Path.GetTempPath(),
Path.GetRandomFileName()
);
Directory.CreateDirectory(sTemporaryFolder);
oThumbnailImages.Folder = sTemporaryFolder;
}
// Save the graph to a bitmap.
Bitmap oBitmap = CreateSubgraphImage(oSubgraph,
oCreateSubgraphImagesAsyncArgs,
oCreateSubgraphImagesAsyncArgs.ThumbnailSizePx);
try
{
// Save the bitmap in the temporary folder.
String sTemporaryFileName = SaveSubgraphImage(oBitmap,
oThumbnailImages.Folder, sVertexName,
oCreateSubgraphImagesAsyncArgs);
// Add the file name to the dictionary. They key is the vertex
// name and the value is the file name, without a path.
oThumbnailImages.FileNames[sVertexName] = sTemporaryFileName;
}
finally
{
GraphicsUtil.DisposeBitmap(ref oBitmap);
}
}