Преобразование слайдов презентации в изображения на Java
Введение
Aspose.Slides for Java позволяет легко конвертировать слайды презентаций PowerPoint и OpenDocument в различные форматы изображений, включая BMP, PNG, JPG (JPEG), GIF и другие.
Чтобы конвертировать слайд в изображение, выполните следующие шаги:
- Определите необходимые параметры конвертации и выберите слайды, которые хотите экспортировать, используя:
- интерфейс ITiffOptions, или
- интерфейс IRenderingOptions.
- Сгенерируйте изображение слайда, вызвав метод getImage.
В Aspose.Slides for Java интерфейс [IImage] позволяет работать с изображениями, определёнными пиксельными данными. С помощью этого интерфейса можно сохранять изображения в широком спектре форматов (BMP, JPG, PNG и др.).
Конвертирование слайдов в растровые изображения и сохранение их в 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 можно конвертировать слайд в изображение с конкретными размерами (ширина и высота).
В этом образце кода показано, как это сделать:
Dimension imageSize = new Dimension(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;
// Load a presentation file.
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.LIGHT_GRAY); // Установить цвет области комментариев.
// Создать параметры отрисовки.
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();
}
Note
В процессе конвертации слайдов в изображения метод setNotesPosition не может применить значениеBottomFull (для указания позиции примечаний), поскольку текст примечания может быть слишком большим и не помещаться в указанном размере изображения.
Конвертирование слайдов в изображения с использованием параметров 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 Dimension(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();
}
Note
Поддержка TIFF не гарантируется в версиях, предшествующих JDK 9.Конвертирование всех слайдов в изображения
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();
}
Отображение цветных эмодзи
Note
Чтобы корректно отобразить цветные эмодзи при конвертации слайдов презентации в изображения, шрифты эмодзи, используемые в презентации, должны быть установлены и доступны на системе, выполняющей конвертацию. Например, если презентация использует Segoe UI Emoji, а данный шрифт отсутствует, эмодзи могут отображаться в монохроме в результирующих изображениях.Вопросы и ответы
Поддерживает ли Aspose.Slides отрисовку слайдов с анимацией?
Нет, метод getImage сохраняет только статическое изображение слайда без анимаций.
Можно ли экспортировать скрытые слайды в виде изображений?
Да, скрытые слайды могут обрабатываться так же, как обычные. Просто убедитесь, что они включены в цикл обработки.
Можно ли сохранять изображения с тенями и эффектами?
Да, Aspose.Slides поддерживает отрисовку теней, прозрачности и других графических эффектов при сохранении слайдов в виде изображений.