Convert EPUB to JPG – C# code examples
JPG files can contain high-quality image data with lossless compression. This unique compression feature allows to quickly and efficiently share JPG images and use them widely on the Web, computers, and mobile devices. With Aspose.HTML for .NET, you can convert EPUB to JPG format programmatically with full control over a wide range of conversion parameters.
In this article, you find information on how to convert EPUB to JPG using ConvertEPUB() methods of the Converter class, and how to apply ImageSaveOptions and ICreateStreamProvider parameters.
Online EPUB Converter
You can convert EPUB to other formats with Aspose.HTML for .NET API in real time. First, load an EPUB file from your local drive and then run the example. The save options in the example are set by default. You will immediately receive the conversion result as a separate file.
If you want to convert EPUB to JPG programmatically, please see the following C# code examples.
EPUB to JPG by two lines of code
The static methods of the Converter class are primarily used as the easiest way to convert an EPUB file into various formats. You can convert EPUB 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 EPUB file for reading.
7 using var stream = File.OpenRead(DataDir + "input.epub");
8
9 // Invoke the ConvertEPUB() method to convert the EPUB code to JPG image
10 Converter.ConvertEPUB(stream, new ImageSaveOptions(ImageFormat.Jpeg), Path.Combine(OutputDir, "convert-by-two-lines.jpg"));
Convert EPUB to JPG
To convert EPUB to JPG, you should follow a few steps:
- Open an existing EPUB file. In the example, we use the OpenRead() method of System.IO.FileStream class to open and read an EPUB file from the file system at the specified path.
- Create a new ImageSaveOptions object with JPG ImageFormat. By default, the Format property is PNG.
- Use the ConvertEPUB() method of the Converter class to save EPUB as a JPG image. You need to pass the EPUB file stream, ImageSaveOptions, and output file path to the ConvertEPUB() method for EPUB to JPG conversion.
Please take a look over the following C# code snippet which shows the process of converting EPUB to JPG using Aspose.HTML for .NET.
1using System.IO;
2using Aspose.Html;
3using Aspose.Html.Converters;
4using Aspose.Html.Rendering.Image;
5using Aspose.Html.Saving;
6...
7 // Open an existing EPUB file for reading
8 using var stream = File.OpenRead(DataDir + "input.epub");
9
10 // Prepare a path for converted file saving
11 string savePath = Path.Combine(OutputDir, "input-output.jpg");
12
13 // Initialize ImageSaveOptions
14 var options = new ImageSaveOptions(ImageFormat.Jpeg);
15
16 // Call the ConvertEPUB() method to convert EPUB to JPG
17 Converter.ConvertEPUB(stream, options, savePath);
You can download the complete examples and data files from GitHub.
Save Options
Aspose.HTML for .NET allows converting EPUB to JPG 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.
Property | Description |
---|---|
Compression | Sets Tagged Image File Format (TIFF) Compression. By default, this property is LZW. |
CSS | Gets a CssOptions object which is used for configuration of CSS properties processing. |
Format | Sets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
BackgroundColor | This property sets the color that will fill the background. By default, this property is Transparent. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
SmoothingMode | This property sets the rendering quality for this image. Available values are Invalid, Default, HighSpeed, HighQuality, None, and AntiAlias. |
Text | Gets 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 EPUB to JPG using ImageSaveOptions
To convert EPUB to JPG with ImageSaveOptions specifying, you should follow a few steps:
- Open an existing EPUB file.
- Create a new ImageSaveOptions object with JPG ImageFormat and specify save options. By default, the Format property is PNG.
- Use the ConvertEPUB() method of the Converter class to save EPUB as a JPG image. You need to pass the EPUB file stream, ImageSaveOptions, and output file path to the ConvertEPUB() method to convert EPUB to JPG.
The following C# code snippet shows how to convert EPUB to JPG using custom save options:
1using System.IO;
2using Aspose.Html;
3using Aspose.Html.Converters;
4using Aspose.Html.Rendering.Image;
5using Aspose.Html.Saving;
6using System.Drawing;
7using Aspose.Html.Drawing;
8using System.Drawing.Drawing2D;
9...
10 // Open an existing EPUB file for reading
11 using var stream = File.OpenRead(DataDir + "input.epub");
12
13 // Prepare a path for converted file saving
14 string savePath = Path.Combine(OutputDir, "input-options.jpg");
15
16 // Initialize ImageSaveOptions
17 var options = new ImageSaveOptions(ImageFormat.Jpeg)
18 {
19 SmoothingMode = SmoothingMode.HighQuality,
20 HorizontalResolution = 400,
21 VerticalResolution = 400,
22 BackgroundColor = System.Drawing.Color.AliceBlue
23 };
24 options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(800, 500), new Margin(30, 20, 10, 10));
25
26 // Call the ConvertEPUB() method to convert EPUB to JPG
27 Converter.ConvertEPUB(stream, options, savePath);
The
ImageSaveOptions() constructor initializes an instance of the ImageSaveOptions class that is passed to ConvertEPUB() method. The ConvertEPUB() method takes the stream
, options
, output file path savePath
and performs the conversion operation.
In the above example, we use:
- BackgroundColor property that specifies the color that the background will be filled in. The default BackgroundColor is Transparent;
- HorizontalResolution and VerticalResolution properties that set horizontal/vertical resolution for output images in pixels per inch. By default, these properties are 300 dpi;
- SmoothingMode property that sets the rendering quality for this image;
- PageSetup property that specifies the page size and margins in pixels.
The ImageSaveOptions class provides numerous properties that give you full control over a wide range of parameters and improve the EPUB to JPG conversion process. Among these properties, SmoothingMode that enables you to set the rendering quality for the image. Available values are Invalid, Default, HighSpeed, HighQuality, None, and AntiAlias. You can select any value, considering the advantages and disadvantages of each one.
Output Stream Providers
If it is required to save files in the remote storage (e.g., cloud, database, etc.) you can implement the 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 the 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 Aspose.Html;
3using System.Linq;
4using Aspose.Html.Converters;
5using Aspose.Html.Rendering.Image;
6using Aspose.Html.Saving;
7...
8 // Open an existing EPUB file for reading
9 using var stream = File.OpenRead(DataDir + "input.epub");
10
11 // Create an instance of MemoryStreamProvider
12 using var streamProvider = new MemoryStreamProvider();
13
14 // Convert HTML to JPG using the MemoryStreamProvider
15 Converter.ConvertEPUB(stream, new ImageSaveOptions(ImageFormat.Jpeg), streamProvider);
16
17 // Get access to the memory streams that contain the resulted data
18 for (int i = 0; i < streamProvider.Streams.Count; i++)
19 {
20 var memory = streamProvider.Streams[i];
21 memory.Seek(0, System.IO.SeekOrigin.Begin);
22
23 // Flush the page to the output file
24 using (FileStream fs = File.Create(Path.Combine(OutputDir, $"input-page_{i + 1}.jpg")))
25 {
26 memory.CopyTo(fs);
27 }
The ConvertEPUB(Stream
, ImageSaveOptions
, ICreateStreamProvider
) method takes the conversion source, options, and instance of MemoryStreamProvider, which will be used to get an output stream, and performs the conversion operation.
Aspose.HTML offers a free online EPUB to JPG Converter that converts EPUB to JPG image with high quality, easy and fast. Just upload, convert your files and get results in a few seconds!