Presentatiedia's converteren naar afbeeldingen op Android

Inleiding

Aspose.Slides for Android via Java kan individuele dia’s uit PowerPoint‑ en OpenDocument‑presentaties renderen als PNG, JPEG, GIF, TIFF en andere afbeeldingsformaten.

  1. Laad de presentatie met de Presentation class.
  2. Selecteer de dia die u wilt renderen.
  3. Indien nodig, configureer het renderen met de RenderingOptions of TiffOptions class.
  4. Roep de ISlide.getImage methode aan. Deze retourneert een IImage object.
  5. Roep de IImage.save methode aan en geef het uitvoerformaat op met een ImageFormat waarde.

Een dia converteren naar een PNG‑afbeelding

De eenvoudigste conversie maakt gebruik van de standaard renderinstellingen. Het resulterende IImage object kan in het geheugen verwerkt of naar een bestand opgeslagen worden.

Het volgende Java‑voorbeeld rendert de eerste dia en slaat deze op als een PNG‑afbeelding:

import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;

Presentation presentation = new Presentation("Presentation.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IImage image = slide.getImage();
    try {
        image.save("Slide_0.png", ImageFormat.Png);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Dia’s converteren naar afbeeldingen met aangepaste afmetingen

Gebruik de ISlide.getImage overload die een Size waarde accepteert om een dia te renderen met exacte pixelafmetingen.

Het volgende voorbeeld maakt een JPEG‑afbeelding van 1820 × 1040:

import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;
import com.aspose.slides.android.Size;

Size imageSize = new Size(1820, 1040);

Presentation presentation = new Presentation("Presentation.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IImage image = slide.getImage(imageSize);
    try {
        image.save("Slide_0.jpg", ImageFormat.Jpeg);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Dia’s met notities en opmerkingen converteren naar afbeeldingen

Standaard bevatten dia‑afbeeldingen geen notities of opmerkingen. Geef een NotesCommentsLayoutingOptions object door aan de RenderingOptions.setSlidesLayoutOptions methode om te bepalen waar notities en opmerkingen verschijnen.

Het volgende voorbeeld plaatst afgekorte notities onder de dia en opmerkingen rechts ervan:

import android.graphics.Color;
import com.aspose.slides.CommentsPositions;
import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.NotesCommentsLayoutingOptions;
import com.aspose.slides.NotesPositions;
import com.aspose.slides.Presentation;
import com.aspose.slides.RenderingOptions;

float scaleX = 2f;
float scaleY = scaleX;

int commentsAreaColor = Color.rgb(250, 235, 215);

NotesCommentsLayoutingOptions layoutOptions = new NotesCommentsLayoutingOptions();
layoutOptions.setNotesPosition(NotesPositions.BottomTruncated);
layoutOptions.setCommentsPosition(CommentsPositions.Right);
layoutOptions.setCommentsAreaWidth(500);
layoutOptions.setCommentsAreaColor(commentsAreaColor);

RenderingOptions renderingOptions = new RenderingOptions();
renderingOptions.setSlidesLayoutOptions(layoutOptions);

Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IImage image = slide.getImage(renderingOptions, scaleX, scaleY);
    try {
        image.save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Dia’s converteren naar afbeeldingen met TIFF‑opties

De TiffOptions class stelt u in staat de grootte, resolutie en andere eigenschappen van de gerenderde TIFF‑afbeelding te regelen.

Het volgende voorbeeld rendert de eerste dia als een 2160 × 2880 TIFF‑afbeelding met 300 DPI:

import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;
import com.aspose.slides.TiffOptions;
import com.aspose.slides.android.Size;

Size imageSize = new Size(2160, 2880);

TiffOptions tiffOptions = new TiffOptions();
tiffOptions.setImageSize(imageSize);
tiffOptions.setDpiX(300);
tiffOptions.setDpiY(300);

Presentation presentation = new Presentation("sample.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    IImage image = slide.getImage(tiffOptions);
    try {
        image.save("output.tiff", ImageFormat.Tiff);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Alle dia’s converteren naar afbeeldingen

Itereer door de verzameling van dia’s om de volledige presentatie om te zetten in een reeks afbeeldingen. Verborgen dia’s worden mee genomen tenzij u ze expliciet overslaat.

Het volgende voorbeeld rendert elke dia als een JPEG‑afbeelding met horizontale en verticale schaalfactoren van 2:

import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;

float scaleX = 2f;
float scaleY = scaleX;

Presentation presentation = new Presentation("Presentation.pptx");
try {
    int slideCount = presentation.getSlides().size();
    for (int index = 0; index < slideCount; index++) {
        ISlide slide = presentation.getSlides().get_Item(index);
        IImage image = slide.getImage(scaleX, scaleY);
        try {
            image.save("Slide_" + index + ".jpg", ImageFormat.Jpeg);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

Enhanced Metafile‑output maken

Enhanced Metafile (EMF) is handig wanneer vector‑gebaseerde graphics moeten worden uitgewisseld met Microsoft Office of andere Windows‑applicaties die Windows‑metabestanden ondersteunen. In tegenstelling tot een pixel‑gebaseerde afbeelding kan een EMF vector‑tekenbewerkingen behouden die schalen zonder hetzelfde verlies van scherpte. EMF is echter vooral een compatibiliteitsformaat voor applicaties met Windows‑metabestandondersteuning, geen universeel uitwisselingsformaat. Bovendien kan complexe dia‑inhoud, zoals bitmap‑afbeeldingen en sommige effecten, worden opgeslagen als gerasterde elementen binnen de vector‑metabestandcontainer.

Een dia exporteren naar EMF

De ISlide.writeAsEmf methode schrijft een ISlide naar een doel‑stream in EMF‑formaat. Het volgende voorbeeld laadt een presentatie, selecteert de eerste dia en schrijft deze naar een EMF‑bestand‑stream:

import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import java.io.FileOutputStream;

Presentation presentation = new Presentation("Presentation.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    FileOutputStream emfStream = new FileOutputStream("Slide_0.emf");
    try {
        slide.writeAsEmf(emfStream);
    } finally {
        emfStream.close();
    }
} finally {
    presentation.dispose();
}

De aanroeper bezit de stream die aan ISlide.writeAsEmf wordt doorgegeven en is verantwoordelijk voor het sluiten ervan, zoals hierboven getoond.

Een SVG‑afbeelding naar EMF converteren en toevoegen aan een presentatie

Gebruik ISvgImage.writeAsEmf om SVG‑inhoud te converteren naar EMF. De resulterende bytes kunnen aan de presentatie toegevoegd worden via IImageCollection.addImage en op een dia geplaatst worden met IShapeCollection.addPictureFrame.

Het volgende voorbeeld maakt een SvgImage van SVG‑markup, converteert het naar een EMF in het geheugen, voegt het metabestand toe op de eerste dia en slaat de presentatie op:

import com.aspose.slides.IPPImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ISvgImage;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ShapeType;
import com.aspose.slides.SvgImage;
import java.io.ByteArrayOutputStream;

String svgContent = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"100\"><rect width=\"200\" height=\"100\" fill=\"#4472C4\"/></svg>";
ISvgImage svgImage = new SvgImage(svgContent);

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

    ByteArrayOutputStream emfStream = new ByteArrayOutputStream();
    try {
        svgImage.writeAsEmf(emfStream);

        byte[] emfData = emfStream.toByteArray();
        IPPImage image = presentation.getImages().addImage(emfData);
        slide.getShapes().addPictureFrame(ShapeType.Rectangle, 20, 20, 200, 100, image);
    } finally {
        emfStream.close();
    }

    presentation.save("Presentation_with_emf.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

ISvgImage.writeAsEmf neemt geen eigendom van de doel‑stream. Een ByteArrayOutputStream slaat alle gegenereerde gegevens in het geheugen op, dus een reset van de positie is niet nodig vóór het aanroepen van toByteArray. Het teruggegeven byte‑array blijft geldig nadat de stream is gesloten.

EMF‑generatie is beschikbaar op ondersteunde Android‑versies en apparaat‑configuraties, maar de weergave kan variëren wanneer lettertypen of grafische afhankelijkheden niet beschikbaar zijn. Installeer de lettertypen die door de broninhoud worden gebruikt of configureer passende vervangingen, volg de installatie‑gids voor Aspose.Slides for Android via Java, en valideer het resultaat in de doel‑EMF‑consumerende applicatie. Applicaties op niet‑Windows‑platformen hebben vaak beperkte of inconsistente ondersteuning voor het weergeven en bewerken van Windows‑metabestanden.

Kleurrijke Emoji‑rendering

FAQ

Ondersteunt Aspose.Slides het renderen van dia’s met animaties?

Nee. De ISlide.getImage methode rendert een statische afbeelding van de dia en exporteert geen animaties.

Kunnen verborgen dia’s geëxporteerd worden als afbeeldingen?

Ja. Verborgen dia’s kunnen gerenderd worden zoals normale dia’s. Neem ze op in de verwerkingslus, zoals getoond in het voorbeeld hierboven.

Worden schaduwen en andere effecten bewaard in dia‑afbeeldingen?

Ja. Aspose.Slides rendert schaduwen, transparantie en andere ondersteunde grafische effecten in dia‑afbeeldingen.