Smrf.NodeXL.ExcelTemplate.SubgraphImageCreator.CreateAndSaveThumbnailImage C# (CSharp) Method

CreateAndSaveThumbnailImage() protected method

protected CreateAndSaveThumbnailImage ( IGraph oSubgraph, String sVertexName, CreateSubgraphImagesAsyncArgs oCreateSubgraphImagesAsyncArgs, TemporaryImages oThumbnailImages ) : void
oSubgraph IGraph
sVertexName String
oCreateSubgraphImagesAsyncArgs CreateSubgraphImagesAsyncArgs
oThumbnailImages TemporaryImages
return void
    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);
        }
    }