Convert MHTML to Image in C# – MHTML to JPG, PNG, BMP, GIF, TIFF

In this article, you will find information on how to convert an MHTML file to Image File Formats such as JPG, PNG, BMP, TIFF, or GIF and how to use ImageSaveOptions and ICreateStreamProvider parameters.

Online MHTML Converter

You can check the Aspose.HTML API functionality and convert MHTML in real-time. Please load an MHTML file from the local file system, select the output format and run the example. In the example, the save options are set by default. You will immediately receive the result as a separate file.

                
            

If you want to convert MHTML to Image formats programmatically, please see the following C# code examples.

MHTML to JPG by two lines of code

The static methods of the Converter class are primarily used as the easiest way to convert an MHTML file into various formats. You can convert MHTML to JPG in your C# application literally with two lines of code!

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5...
 6    // Open an existing MHTML file for reading
 7    using var stream = File.OpenRead(DataDir + "sample.mht");
 8
 9    // Invoke the ConvertMHTML() method to convert MHTML to JPG
10    Converter.ConvertMHTML(stream, new ImageSaveOptions(ImageFormat.Jpeg), Path.Combine(OutputDir, "convert-by-two-lines.jpg"));

Convert MHTML to JPG

Converting a file to another format using the ConvertMHTML() method is a sequence of operations among which document loading and saving:

  1. Open an existing MHTML file.
  2. Create a new ImageSaveOptions object with JPG ImageFormat. By default, the Format property is PNG.
  3. Use the ConvertMHTML() method of the Converter class to save MHTML as a JPG image. You need to pass the MHTML file stream, ImageSaveOptions, and output file path to the ConvertMHTML() method for MHTML to JPG conversion.

Please take a look over the following C# code snippet which shows the process of converting MHTML to JPG using Aspose.HTML for .NET.

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5...
 6    // Open an existing MHTML file for reading
 7    using var stream = File.OpenRead(DataDir + "sample.mht");
 8
 9    // Create an instance of ImageSaveOptions
10    var options = new ImageSaveOptions(ImageFormat.Jpeg);
11
12    // Call the ConvertMHTML() method to convert MHTML to JPG
13    Converter.ConvertMHTML(stream, options, Path.Combine(OutputDir, "sample-output.jpg"));

You can download the complete examples and data files from GitHub.

Convert MHTML to PNG

Converting a file to another format using the ConvertMHTML() method is a sequence of operations among which document loading and saving:

  1. Open an existing MHTML file.
  2. Create a new ImageSaveOptions object. By default, the Format property is PNG.
  3. Use the ConvertMHTML() method of the Converter class to save MHTML as a PNG image. You need to pass the MHTML file stream, ImageSaveOptions, and output file path to the ConvertMHTML() method for MHTML to PNG converting.

The following C# code snippet shows how to convert MHTML to PNG using Aspose.HTML for .NET.

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5...
 6    // Open an existing MHTML file for reading
 7    using var stream = File.OpenRead(DataDir + "sample.mht");
 8
 9    // Create an instance of ImageSaveOptions
10    var options = new ImageSaveOptions(ImageFormat.Png);
11
12    // Call the ConvertMHTML() method to convert MHTML to PNG
13    Converter.ConvertMHTML(stream, options, Path.Combine(OutputDir, "sample-output.png"));

Convert MHTML to BMP

Converting a file to another format using the ConvertMHTML() method is a sequence of operations among which document loading and saving:

  1. Open an existing MHTML file.
  2. Create a new ImageSaveOptions object with BMP ImageFormat. By default, the Format property is PNG.
  3. Use the ConvertMHTML() method of the Converter class to save MHTML as a BMP image. You need to pass the MHTML file stream, ImageSaveOptions, and output file path to the ConvertMHTML() method for MHTML to BMP conversion.

Please take a look over the following C# code snippet which shows the process of converting MHTML to BMP using Aspose.HTML for .NET.

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5...
 6    // Open an existing MHTML file for reading
 7    using var stream = File.OpenRead(DataDir + "sample.mht");
 8
 9    // Create an instance of ImageSaveOptions
10    var options = new ImageSaveOptions(ImageFormat.Bmp);
11
12    // Call the ConvertMHTML() method to convert MHTML to BMP
13    Converter.ConvertMHTML(stream, options, Path.Combine(OutputDir, "sample-output.bmp"));

You can download the complete examples and data files from GitHub.

Convert MHTML to GIF

Converting a file to another format using the ConvertMHTML() method is a sequence of operations among which document loading and saving:

  1. Open an existing MHTML file.
  2. Create a new ImageSaveOptions object with GIF ImageFormat. By default, the Format property is PNG.
  3. Use the ConvertMHTML() method of the Converter class to save MHTML as a GIF image. You need to pass the MHTML file stream, ImageSaveOptions, and output file path to the ConvertMHTML() method for MHTML to GIF converting.

Please take a look over the following C# code snippet which shows the process of converting MHTML to GIF using Aspose.HTML for .NET.

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5...
 6    // Open an existing MHTML file for reading
 7    using var stream = File.OpenRead(DataDir + "sample.mht");
 8
 9    // Create an instance of ImageSaveOptions
10    var options = new ImageSaveOptions(ImageFormat.Gif);
11
12    // Call the ConvertMHTML() method to convert MHTML to GIF
13    Converter.ConvertMHTML(stream, options, Path.Combine(OutputDir, "sample-output.gif"));

Convert MHTML to TIFF

Converting a file to another format using the ConvertMHTML() method is a sequence of operations among which document loading and saving. To convert MHTML to TIFF, you should follow a few steps:

  1. Open an existing MHTML file.
  2. Create a new ImageSaveOptions object with TIFF ImageFormat. By default, the Format property is PNG.
  3. Use the ConvertMHTML() method of the Converter class to save MHTML as a TIFF image. You need to pass the MHTML file stream, ImageSaveOptions, and output file path to the ConvertMHTML() method for MHTML to TIFF converting.

Please take a look over the following C# code snippet, which shows the process of MHTML to TIFF conversion using Aspose.HTML for .NET.

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5...
 6    // Open an existing MHTML file for reading
 7    using var stream = File.OpenRead(DataDir + "sample.mht");
 8
 9    // Prepare a path to save the converted file 
10    string savePath = Path.Combine(OutputDir, "sample-options.tiff");
11
12    // Create an instance of ImageSaveOptions
13    var options = new ImageSaveOptions(ImageFormat.Tiff);
14
15    // Call the ConvertMHTML() method to convert MHTML to TIFF
16    Converter.ConvertMHTML(stream, options, savePath);

You can download the complete examples and data files from GitHub.

Save Options

Aspose.HTML allows converting MHTML to Image using default or custom save options. ImageSaveOptions usage enables you to tune the rendering process. You can specify the image format, page size, margins, CSS media-type, etc.

PropertyDescription
CompressionSets Tagged Image File Format (TIFF) Compression. By default, this property is LZW.
CSSGets a CssOptions object which is used for configuration of CSS properties processing.
FormatSets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG.
BackgroundColorThis property sets the color that will fill the background. By default, this property is Transparent.
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
HorizontalResolutionSets horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets vertical resolution for output images in pixels per inch. The default value is 300 dpi.
SmoothingModeThis property sets the rendering quality for this image. Available values are Invalid, Default, HighSpeed, HighQuality, None, and AntiAlias.
TextGets a TextOptions object which is used for configuration of text rendering.

To learn more about the ImageSaveOptions class, please read the Fine-Tuning Converters article.

Convert MHTML to JPG using ImageSaveOptions

To convert MHTML to JPG with ImageSaveOptions specifying, you should follow a few steps:

  1. Open an existing MHTML file.
  2. Create a new ImageSaveOptions object with JPG ImageFormat and specify save options. By default, the Format property is PNG.
  3. Use the ConvertMHTML() method of the Converter class to save MHTML as a JPG image.

The ImageSaveOptions class provides numerous properties that give you full control over a wide range of parameters and improve the process of converting MHTML to Image formats. The following C# code snippet shows how to convert MHTML to JPG using custom save options:

 1using System.IO;
 2using Aspose.Html.Converters;
 3using Aspose.Html.Rendering.Image;
 4using Aspose.Html.Saving;
 5using System.Drawing;
 6using Aspose.Html.Drawing;
 7using System.Drawing.Drawing2D;
 8...
 9    // Open an existing MHTML file for reading
10    using var stream = File.OpenRead(DataDir + "sample.mht");
11
12    // Prepare a path to save the converted file 
13    string savePath = Path.Combine(OutputDir, "sample-options.jpg");
14
15    // Initailize the ImageSaveOptions with a custom page-size and a background color 
16    var options = new ImageSaveOptions(ImageFormat.Jpeg)
17    {
18        PageSetup =
19            {
20                AnyPage = new Page()
21                {
22                    Size = new Aspose.Html.Drawing.Size(Length.FromPixels(1000), Length.FromPixels(500))
23                }
24            },
25        BackgroundColor = System.Drawing.Color.Beige
26    };
27
28    // Call the ConvertMHTML() method to convert MHTML to JPG
29    Converter.ConvertMHTML(stream, options, savePath);

The ImageSaveOptions() constructor initializes an instance of the ImageSaveOptions class that is passed to ConvertMHTML() method. The ConvertHTML() method takes the stream, options, output file path savePath and performs the conversion operation.

In the example, we use:

Output Stream Providers

If it is required to save files in the remote storage (e.g., cloud, database, etc.) you can implement ICreateStreamProvider interface to have manual control over the file creating process. This interface is designed as a callback object to create a stream at the beginning of the document/page (depending on the output format) and release the early created stream after rendering the document/page.

Aspose.HTML for .NET provides various types of output formats for rendering operations. Some of these formats produce a single output file (for instance PDF, XPS), others create multiple files (Image formats JPG, PNG, etc.).

The example below shows how to implement and use your own MemoryStreamProvider in the application:

 1using System.IO;
 2using System.Collections.Generic;
 3...
 4    class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
 5    {
 6        // List of MemoryStream objects created during the document rendering
 7        public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
 8
 9        public Stream GetStream(string name, string extension)
10        {
11            // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats.
12            MemoryStream result = new MemoryStream();
13            Streams.Add(result);
14            return result;
15        }
16
17        public Stream GetStream(string name, string extension, int page)
18        {
19            // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
20            MemoryStream result = new MemoryStream();
21            Streams.Add(result);
22            return result;
23        }
24
25        public void ReleaseStream(Stream stream)
26        {
27            //  Here you can release the stream filled with data and, for instance, flush it to the hard-drive
28        }
29
30        public void Dispose()
31        {
32            // Releasing resources
33            foreach (var stream in Streams)
34                stream.Dispose();
35        }
36    }
 1using System.IO;
 2using System.Linq;
 3using Aspose.Html.Converters;
 4using Aspose.Html.Saving;
 5...
 6     // Create an instance of MemoryStreamProvider
 7     using var streamProvider = new MemoryStreamProvider();
 8
 9     // Open an existing MHTML file for reading
10     using var stream = File.OpenRead(DataDir + "sample.mht");
11
12     // Prepare a path to save the converted file 
13     string savePath = Path.Combine(OutputDir, "stream-provider.jpg");
14
15     // Convert MHTML to JPG by using the MemoryStreamProvider class
16     Converter.ConvertMHTML(stream, new ImageSaveOptions(ImageFormat.Jpeg), streamProvider);
17
18     // Get access to the memory streams that contain the resulted data
19     for (int i = 0; i < streamProvider.Streams.Count; i++)
20     {
21         var memory = streamProvider.Streams[i];
22         memory.Seek(0, SeekOrigin.Begin);
23
24         // Flush the page to the output file
25         //using (FileStream fs = File.Create($"page_{i + 1}.jpg"))
26         using (FileStream fs = File.Create(savePath))
27         {
28             memory.CopyTo(fs);
29         }

You can download the complete examples and data files from GitHub.

Download our Aspose.HTMLfor .NET library allows you to successfully, quickly, and easily convert your HTML, MHTML, EPUB, SVG, and Markdown documents to the most popular formats.

Aspose.HTML offers a free online MHTML to JPG Converter that converts MHTML to JPG image with high quality, easy and fast. Just upload, convert your files and get results in a few seconds!

Text “Banner MHTML to JPG Converter”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.