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

Обзор

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

Для конвертации слайда в изображение выполните следующие шаги:

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

В Aspose.Slides for Android via Java интерфейс IImage предоставляет возможности работы с изображениями, определенными пиксельными данными. С его помощью можно сохранять изображения в широком спектре форматов (BMP, JPG, PNG и т.д.).

Конвертация слайдов в Bitmap и сохранение изображений в PNG

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

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

Presentation presentation = new Presentation("Presentation.pptx");
try {
    // Конвертировать первый слайд презентации в bitmap.
    IImage image = presentation.getSlides().get_Item(0).getImage();
	try {
        // Сохранить изображение в формате PNG.
        image.save("Slide_0.png", ImageFormat.Png);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

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

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

Пример кода, показывающий, как это сделать:

Size imageSize = new Size(1820, 1040);

Presentation presentation = new Presentation("Presentation.pptx");
try {
    // Конвертировать первый слайд презентации в bitmap с указанным размером.
    IImage image = presentation.getSlides().get_Item(0).getImage(imageSize);

    try {
        // Сохранить изображение в формате JPEG.
        image.save("Slide_0.jpg", ImageFormat.Jpeg);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Конвертация слайдов с заметками и комментариями в изображения

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

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

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

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

float scaleX = 2;
float scaleY = scaleX;

// Загрузить файл презентации.
Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
    NotesCommentsLayoutingOptions notesCommentsOptions = new NotesCommentsLayoutingOptions();
    notesCommentsOptions.setNotesPosition(NotesPositions.BottomTruncated);  // Установить положение заметок.
    notesCommentsOptions.setCommentsPosition(CommentsPositions.Right);      // Установить положение комментариев.
    notesCommentsOptions.setCommentsAreaWidth(500);                         // Установить ширину области комментариев.
    notesCommentsOptions.setCommentsAreaColor(Color.LTGRAY);   // Установить цвет области комментариев.

    // Создать параметры рендеринга.
    RenderingOptions options = new RenderingOptions();
    options.setSlidesLayoutOptions(notesCommentsOptions);

    // Преобразовать первый слайд презентации в изображение.
    IImage image = presentation.getSlides().get_Item(0).getImage(options, scaleX, scaleY);

    try {
        // Сохранить изображение в формате GIF.
        image.save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

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

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

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

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

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

    // Преобразовать слайд в изображение с указанными параметрами.
    IImage image = slide.getImage(tiffOptions);

    try {
        // Сохранить изображение в формате TIFF.
        image.save("output.tiff", ImageFormat.Tiff);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

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

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

Пример кода, показывающий, как конвертировать все слайды презентации в изображения на Java:

float scaleX = 2;
float scaleY = scaleX;

Presentation presentation = new Presentation("Presentation.pptx");
try {
    // Рендерить презентацию в изображения слайд за слайдом.
    for (int i = 0 ; i < presentation.getSlides().size(); i++)
    {
        // Управление скрытыми слайдами (не рендерить скрытые слайды).
        if (presentation.getSlides().get_Item(i).getHidden())
            continue;

        // Преобразовать слайд в изображение.
        IImage image = presentation.getSlides().get_Item(i).getImage(scaleX, scaleY);

        try {
            // Сохранить изображение в формате JPEG.
            image.save("Slide_" + i + ".jpg", ImageFormat.Jpeg);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

FAQ

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

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

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

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

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

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