Преобразование слайдов презентации в изображения в .NET

Обзор

Aspose.Slides for .NET позволяет легко преобразовывать слайды презентаций PowerPoint и OpenDocument в различные форматы изображений, включая BMP, PNG, JPG (JPEG), GIF и другие.

Чтобы преобразовать слайд в изображение, выполните следующие шаги:

  1. Задайте нужные параметры конвертации и выберите слайды для экспорта, используя:
  2. Сгенерируйте изображение слайда, вызвав метод GetImage.

В .NET объект Bitmap позволяет работать с изображениями, определенными пиксельными данными. Вы можете использовать экземпляр этого класса для сохранения изображений в широком диапазоне форматов (BMP, JPG, PNG и т.д.).

Преобразование слайдов в битмапы и сохранение изображений в PNG

Вы можете преобразовать слайд в объект битмапа и использовать его напрямую в приложении. Либо преобразовать слайд в битмап, а затем сохранить изображение в JPEG или любом другом формате.

Этот C# код демонстрирует, как преобразовать первый слайд презентации в объект битмапа и сохранить изображение в формате PNG:

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    // Преобразовать первый слайд презентации в битмап.
    using (IImage image = presentation.Slides[0].GetImage())
    {
        // Сохранить изображение в формате PNG.
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}

Преобразование слайдов в изображения с пользовательскими размерами

Возможно, вам понадобится изображение определённого размера. С помощью перегрузки метода GetImage можно преобразовать слайд в изображение с заданными шириной и высотой.

Этот пример кода демонстрирует, как это сделать:

Size imageSize = new Size(1820, 1040);

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    // Преобразовать первый слайд презентации в битмап с указанным размером.
    using (IImage image = presentation.Slides[0].GetImage(imageSize))
    {
        // Сохранить изображение в формате JPEG.
        image.Save("Slide_0.jpg", ImageFormat.Jpeg);
    }
}

Преобразование слайдов с примечаниями и комментариями в изображения

Некоторые слайды могут содержать примечания и комментарии.

Aspose.Slides предоставляет два интерфейса — ITiffOptions и IRenderingOptions — которые позволяют управлять рендерингом слайдов презентации в изображения. Оба интерфейса включают свойство SlidesLayoutOptions, которое позволяет настраивать рендеринг примечаний и комментариев на слайде при его конвертации в изображение.

С помощью класса NotesCommentsLayoutingOptions вы можете указать предпочтительное расположение примечаний и комментариев в результирующем изображении.

Этот C# код демонстрирует, как преобразовать слайд с примечаниями и комментариями:

float scaleX = 2;
float scaleY = scaleX;

// Загрузить файл презентации.
using (Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx"))
{
    // Создать параметры рендеринга.
    RenderingOptions options = new RenderingOptions
    {
        SlidesLayoutOptions = new NotesCommentsLayoutingOptions
        {
            NotesPosition = NotesPositions.BottomTruncated,  // Установить положение заметок.
            CommentsPosition = CommentsPositions.Right,      // Установить положение комментариев.
            CommentsAreaWidth = 500,                         // Установить ширину области комментариев.
            CommentsAreaColor = Color.AntiqueWhite           // Установить цвет области комментариев.
        }
    };

    // Преобразовать первый слайд презентации в изображение.
    using (IImage image = presentation.Slides[0].GetImage(options, scaleX, scaleY))
    {
        // Сохранить изображение в формате GIF.
        image.Save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
    }
}

Преобразование слайдов в изображения с использованием параметров TIFF

Интерфейс ITiffOptions предоставляет больший контроль над результирующим TIFF‑изображением, позволяя задавать такие параметры, как размер, разрешение, цветовая палитра и др.

Этот C# код демонстрирует процесс конвертации, в котором параметры TIFF используются для вывода черно‑белого изображения с разрешением 300 DPI и размером 2160 × 2800:

// Загрузить файл презентации.
using (Presentation presentation = new Presentation("sample.pptx"))
{
    // Получить первый слайд из презентации.
    ISlide slide = presentation.Slides[0];

    // Настроить параметры выходного TIFF‑изображения.
    TiffOptions tiffOptions = new TiffOptions
    {
        ImageSize = new Size(2160, 2880),                  // Установить размер изображения.
        PixelFormat = ImagePixelFormat.Format1bppIndexed,  // Установить пиксельный формат (чёрно‑белый).
        DpiX = 300,                                        // Установить горизонтальное разрешение.
        DpiY = 300                                         // Установить вертикальное разрешение.
    };

    // Преобразовать слайд в изображение с указанными параметрами.
    using (IImage image = slide.GetImage(tiffOptions))
    {
        // Сохранить изображение в формате TIFF.
        image.Save("output.tiff", ImageFormat.Tiff);
    }
}

Преобразование всех слайдов в изображения

Aspose.Slides позволяет преобразовать все слайды презентации в изображения, эффективно преобразуя всю презентацию в набор изображений.

Этот пример кода демонстрирует, как преобразовать все слайды презентации в изображения на C#:

float scaleX = 2;
float scaleY = scaleX;

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    // Отобразить презентацию в изображения слайд за слайдом.
    for (int i = 0; i < presentation.Slides.Count; i++)
    {
        // Управление скрытыми слайдами (не отображать скрытые слайды).
        if (presentation.Slides[i].Hidden)
            continue;

        // Преобразовать слайд в изображение.
        using (IImage image = presentation.Slides[i].GetImage(scaleX, scaleY))
        {
            // Сохранить изображение в формате JPEG.
            image.Save($"Slide_{i}.jpg", ImageFormat.Jpeg);
        }
    }
}

FAQ

1. Поддерживает ли Aspose.Slides рендеринг слайдов с анимациями?

Нет, метод GetImage сохраняет только статическое изображение слайда, без анимаций.

2. Можно ли экспортировать скрытые слайды как изображения?

Да, скрытые слайды могут обрабатываться так же, как обычные. Просто убедитесь, что они включены в цикл обработки.

3. Можно ли сохранять изображения с тенями и эффектами?

Да, Aspose.Slides поддерживает рендеринг теней, прозрачности и других графических эффектов при сохранении слайдов в виде изображений.