转换幻灯片

Aspose.Slides for .NET 允许您将幻灯片(在演示文稿中)转换为图像。这些是支持的图像格式:BMP、PNG、JPG(JPEG)、GIF等。

要将幻灯片转换为图像,请执行以下操作:

  1. 首先,使用以下方式设置转换参数和要转换的幻灯片对象:

  2. 其次,通过使用 GetImage 方法将幻灯片转换为图像。

关于位图和其他图像格式

在 .NET 中, Bitmap 是一种允许您处理由像素数据定义的图像的对象。您可以使用此类的实例以多种格式(BMP、JPG、PNG 等)保存图像。

将幻灯片转换为位图并将图像保存为PNG格式

以下C#代码演示了如何将演示文稿的第一张幻灯片转换为位图对象,然后将图像保存为PNG格式:

using (Presentation pres = new Presentation("Presentation.pptx"))
{
    // 将演示文稿中的第一张幻灯片转换为位图对象
    using (IImage image = pres.Slides[0].GetImage())
    {
        // 将图像保存为PNG格式
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}

使用自定义大小将幻灯片转换为图像

您可能需要获取特定大小的图像。使用 GetImage 的重载,您可以将幻灯片转换为具有特定尺寸(长度和宽度)的图像。

以下示例代码演示了如何使用C#中的 GetImage 方法进行转换:

using (Presentation pres = new Presentation("Presentation.pptx"))
{
    // 将演示文稿中的第一张幻灯片转换为具有指定大小的位图
    using (IImage image = pres.Slides[0].GetImage(new Size(1820, 1040)))
    {
        // 将图像保存为JPEG格式
        image.Save("Slide_0.jpg", ImageFormat.Jpeg);
    }
}

将带有注释和评论的幻灯片转换为图像

一些幻灯片包含注释和评论。

Aspose.Slides 提供了两个接口——ITiffOptionsIRenderingOptions——让您可以控制将演示文稿幻灯片呈现为图像的方式。两个接口都拥有 INotesCommentsLayoutingOptions 接口,该接口允许您在将幻灯片转换为图像时添加幻灯片上的注释和评论。

以下C#代码演示了带有注释和评论的幻灯片的转换过程:

using (Presentation pres = new Presentation("PresentationNotesComments.pptx"))
{
    // 创建渲染选项
    IRenderingOptions options = new RenderingOptions();

    // 设置页面上注释的位置
    options.NotesCommentsLayouting.NotesPosition = NotesPositions.BottomTruncated;

    // 设置页面上评论的位置 
    options.NotesCommentsLayouting.CommentsPosition = CommentsPositions.Right;

    // 设置评论输出区域的宽度
    options.NotesCommentsLayouting.CommentsAreaWidth = 500;

    // 设置评论区域的颜色
    options.NotesCommentsLayouting.CommentsAreaColor = Color.AntiqueWhite;

    // 将演示文稿的第一张幻灯片转换为位图对象
    using (IImage image = pres.Slides[0].GetImage(options, 2f, 2f))
    {
        // 将图像保存为GIF格式
        image.Save("Slide_Notes_Comments_0.gif", ImageFormat.Gif);
    }
}

使用ITiffOptions将幻灯片转换为图像

ITiffOptions 接口为您提供了对结果图像的更多控制(在参数方面)。使用此接口,您可以为结果图像指定大小、分辨率、调色板和其他参数。

以下C#代码演示了一个转换过程,其中ITiffOptions用于输出黑白图像,分辨率为300dpi,大小为2160 × 2800:

using (Presentation pres = new Presentation("PresentationNotesComments.pptx"))
{
    // 根据索引获取幻灯片
    ISlide slide = pres.Slides[0];

    // 创建TiffOptions对象
    TiffOptions options = new TiffOptions() { ImageSize = new Size(2160, 2880) };

    // 设置未找到源字体时使用的字体
    options.DefaultRegularFont = "Arial Black";

    // 设置页面上注释的位置 
    options.NotesCommentsLayouting.NotesPosition = NotesPositions.BottomTruncated;

    // 设置像素格式(黑白)
    options.PixelFormat = ImagePixelFormat.Format1bppIndexed;

    // 设置分辨率
    options.DpiX = 300;
    options.DpiY = 300;

    // 将幻灯片转换为位图对象
    using (IImage image = slide.GetImage(options))
    {
        // 将图像保存为BMP格式
        image.Save("PresentationNotesComments.tiff", ImageFormat.Tiff);
    }
}  

将所有幻灯片转换为图像

Aspose.Slides 允许您将单个演示文稿中的所有幻灯片转换为图像。基本上,您可以将整个演示文稿转换为图像。

以下示例代码演示了如何将演示文稿中的所有幻灯片转换为图像(C#):

// 指定输出目录的路径
string outputDir = @"D:\PresentationImages";

using (Presentation pres = new Presentation("Presentation.pptx"))
{
    // 一张一张地将演示文稿渲染为图像数组
    for (int i = 0; i < pres.Slides.Count; i++)
    {
        // 指定隐藏幻灯片的设置(不渲染隐藏幻灯片)
        if (pres.Slides[i].Hidden)
            continue;

        // 将幻灯片转换为位图对象
        using (IImage image = pres.Slides[i].GetImage(2f, 2f))
        {
            // 为图像创建文件名
            string outputFilePath = Path.Combine(outputDir, "Slide_" + i + ".jpg");

            // 将图像保存为JPEG格式
            image.Save(outputFilePath, ImageFormat.Jpeg);
        }
    }
}