ImageSavingArgsImageStream Property

Allows to specify the stream where the image will be saved to.

Namespace:  Aspose.Words.Saving
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 20.3
Syntax
public Stream ImageStream { get; set; }

Property Value

Type: Stream
Remarks

This property allows you to save images to streams instead of files during HTML.

The default value is null. When this property is null, the image will be saved to a file specified in the ImageFileName property.

Using IImageSavingCallback you cannot substitute one image with another. It is intended only for control over location where to save images.

Examples
Shows how to involve an image saving callback in an .html conversion process.
public void ImageSavingCallback()
{
    // Open a document which contains shapes with images
    Document doc = new Document(MyDir + "Rendering.docx");

    // Create a HtmlSaveOptions object with a custom image saving callback that will print image information
    HtmlSaveOptions options = new HtmlSaveOptions();
    options.ImageSavingCallback = new ImageShapePrinter();

    doc.Save(ArtifactsDir + "HtmlSaveOptions.ImageSavingCallback.html", options);
}

/// <summary>
/// Prints information of all images that are about to be saved from within a document to image files
/// </summary>
private class ImageShapePrinter : IImageSavingCallback
{
    void IImageSavingCallback.ImageSaving(ImageSavingArgs args)
    {
        args.KeepImageStreamOpen = false;
        Assert.True(args.IsImageAvailable);

        Console.WriteLine($"{args.Document.OriginalFileName.Split('\\').Last()} Image #{++mImageCount}");

        LayoutCollector layoutCollector = new LayoutCollector(args.Document);

        Console.WriteLine($"\tOn page:\t{layoutCollector.GetStartPageIndex(args.CurrentShape)}");
        Console.WriteLine($"\tDimensions:\t{args.CurrentShape.Bounds.ToString()}");
        Console.WriteLine($"\tAlignment:\t{args.CurrentShape.VerticalAlignment}");
        Console.WriteLine($"\tWrap type:\t{args.CurrentShape.WrapType}");
        Console.WriteLine($"Output filename:\t{args.ImageFileName}\n");
    }

    private int mImageCount;
}
See Also