Изображение

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

Изображения делают презентации более увлекательными и интересными. В Microsoft PowerPoint вы можете вставлять изображения из файла, Интернета или других мест в слайды. Аналогично, Aspose.Slides позволяет добавлять изображения в слайды ваших презентаций различными способами.

Aspose.Slides поддерживает операции с изображениями в этих популярных форматах: JPEG, PNG, GIF и других.

Добавление локально хранящихся изображений в слайды

Вы можете добавить одно или несколько изображений с вашего компьютера на слайд презентации. Этот пример кода на Java показывает, как добавить изображение на слайд:

Presentation pres = new Presentation();
try {
	ISlide slide = pres.getSlides().get_Item(0);
	    IPPImage picture;
        IImage image = Images.fromFile("image.png");
        try {
            picture = pres.getImages().addImage(image);
        } finally {
            if (image != null) image.dispose();
        }
	slide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);

	pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}

Добавление изображений из Интернета в слайды

Если изображение, которое вы хотите добавить на слайд, недоступно на вашем компьютере, вы можете добавить изображение непосредственно из Интернета.

Этот пример кода показывает, как добавить изображение из Интернета на слайд на Java:

Presentation pres = new Presentation();
try {
	ISlide slide = pres.getSlides().get_Item(0);

	URL imageUrl = new URL("[ЗАМЕНИТЕ НА URL]");
	URLConnection connection = imageUrl.openConnection();
	InputStream inputStream = connection.getInputStream();

	ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
	try {
		byte[] buffer = new byte[1024];
		int read;

		while ((read = inputStream.read(buffer, 0, buffer.length)) != -1)
			outputStream.write(buffer, 0, read);

		outputStream.flush();

		IPPImage image = pres.getImages().addImage(outputStream.toByteArray());
		slide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
	} finally {
		if (inputStream != null) inputStream.close();
		outputStream.close();
	}

	pres.save("pres.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
	if (pres != null) pres.dispose();
}

Добавление изображений в мастер-слайды

Мастер-слайд — это верхний слайд, который хранит и контролирует информацию (тема, макет и т.д.) о всех слайдах под ним. Таким образом, когда вы добавляете изображение в мастер-слайд, это изображение появляется на каждом слайде под этим мастер-слайдом.

Этот пример кода на Java показывает, как добавить изображение в мастер-слайд:

Presentation pres = new Presentation();
try {
	ISlide slide = pres.getSlides().get_Item(0);
	IMasterSlide masterSlide = slide.getLayoutSlide().getMasterSlide();

    IPPImage picture;
    IImage image = Images.fromFile("image.png");
    try {
        picture = pres.getImages().addImage(image);
    } finally {
        if (image != null) image.dispose();
    }
	masterSlide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);

	pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
	if (pres != null) pres.dispose();
}

Добавление изображений в качестве фона слайда

Вы можете решить использовать изображение в качестве фона для определенного слайда или нескольких слайдов. В этом случае вам необходимо ознакомиться с Установкой изображений в качестве фонов для слайдов.

Добавление SVG в презентации

Вы можете добавить или вставить любое изображение в презентацию, используя метод addPictureFrame, который принадлежит интерфейсу IShapeCollection.

Чтобы создать объект изображения на основе SVG-изображения, вы можете сделать это следующим образом:

  1. Создайте объект SvgImage, чтобы вставить его в ImageShapeCollection
  2. Создайте объект PPImage из ISvgImage
  3. Создайте объект PictureFrame, используя интерфейс IPPImage

Этот пример кода показывает, как реализовать описанные шаги для добавления SVG-изображения в презентацию:

// Создание объекта класса Presentation, представляющего файл PPTX
Presentation pres = new Presentation();
try {
    String svgContent = new String(Files.readAllBytes(Paths.get("image.svg")));
    ISvgImage svgImage = new SvgImage(svgContent);
    IPPImage ppImage = pres.getImages().addImage(svgImage);
    pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0, 
			ppImage.getWidth(), ppImage.getHeight(), ppImage);
    pres.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

Конвертация SVG в набор фигур

Конвертация SVG в набор фигур в Aspose.Slides аналогична функциональности PowerPoint, используемой для работы с изображениями SVG:

Всплывающее меню PowerPoint

Функциональность предоставляется одним из перегруженных методов addGroupShape интерфейса IShapeCollection, который принимает объект ISvgImage в качестве первого аргумента.

Этот пример кода показывает, как использовать описанный метод для конвертации SVG-файла в набор фигур:

// Создание новой презентации
IPresentation presentation = new Presentation();
try {
    // Чтение содержимого SVG-файла
    byte[] svgContent = Files.readAllBytes(Paths.get("image.svg"));

    // Создание объекта SvgImage
    ISvgImage svgImage = new SvgImage(svgContent);

    // Получение размера слайда
    Dimension2D slideSize = presentation.getSlideSize().getSize();

    // Конвертация SVG-изображения в группу фигур с масштабированием до размера слайда
    presentation.getSlides().get_Item(0).getShapes().
            addGroupShape(svgImage, 0f, 0f, (float)slideSize.getWidth(), (float)slideSize.getHeight());

    // Сохранение презентации в формате PPTX
    presentation.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
    if (presentation != null) presentation.dispose();
}

Добавление изображений в формате EMF в слайды

Aspose.Slides для Java позволяет вам генерировать EMF-изображения из Excel-листов и добавлять изображения в формате EMF в слайды с помощью Aspose.Cells.

Этот пример кода показывает, как выполнить описанную задачу:

Workbook book = new Workbook("chart.xlsx");
Worksheet sheet = book.getWorksheets().get(0);
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.setHorizontalResolution(200);
options.setVerticalResolution(200);
options.setImageType(ImageType.EMF);

//Сохранение рабочей книги в поток
SheetRender sr = new SheetRender(sheet, options);
Presentation pres = new Presentation();
try {
    pres.getSlides().removeAt(0);
    
    String EmfSheetName = "";
    for (int j = 0; j < sr.getPageCount(); j++)
    {
    
        EmfSheetName = "test" + sheet.getName() + " Page" + (j + 1) + ".out.emf";
        sr.toImage(j, EmfSheetName);

        IPPImage picture;
        IImage image = Images.fromFile(EmfSheetName);
        try {
            picture = pres.getImages().addImage(image);
        } finally {
            if (image != null) image.dispose();
        }
        ISlide slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(SlideLayoutType.Blank));
        IShape m = slide.getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0,
					(float)pres.getSlideSize().getSize().getWidth(), 
					(float)pres.getSlideSize().getSize().getHeight(), 
					picture);
    }
    
    pres.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
    if (pres != null) pres.dispose();
}