Μετατροπή διαφανειών παρουσίασης σε εικόνες στο .NET

Εισαγωγή

Το Aspose.Slides for .NET μπορεί να αποδώσει μεμονωμένες διαφάνειες από παρουσιάσεις PowerPoint και OpenDocument ως PNG, JPEG, GIF, TIFF και άλλες μορφές εικόνας.

Για να μετατρέψετε μια διαφάνεια σε εικόνα, ακολουθήστε τα παρακάτω βήματα:

  1. Φορτώστε την παρουσίαση με την κλάση Presentation.
  2. Επιλέξτε τη διαφάνεια που θέλετε να αποδώσετε.
  3. Εάν είναι απαραίτητο, διαμορφώστε την απόδοση με την κλάση RenderingOptions ή TiffOptions.
  4. Καλέστε τη μέθοδο GetImage. Επιστρέφει ένα αντικείμενο IImage.
  5. Καλέστε τη μέθοδο IImage.Save και ορίστε τη μορφή εξόδου με μια τιμή ImageFormat.

Μετατροπή μιας διαφάνειας σε εικόνα PNG

Η πιο απλή μετατροπή χρησιμοποιεί τις προεπιλεγμένες ρυθμίσεις απόδοσης. Το παραγόμενο αντικείμενο IImage μπορεί να επεξεργαστεί στη μνήμη ή να αποθηκευτεί σε αρχείο.

Το παρακάτω παράδειγμα C# αποδίδει την πρώτη διαφάνεια και την αποθηκεύει ως εικόνα PNG:

using Aspose.Slides;

using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage();
image.Save("Slide_0.png", ImageFormat.Png);

Μετατροπή διαφανειών σε εικόνες με προσαρμοσμένα μεγέθη

Χρησιμοποιήστε την υπερφόρτωση της GetImage που δέχεται μια τιμή Size για να αποδώσετε μια διαφάνεια με ακριβείς διαστάσεις εικονοστοιχείων.

Το παρακάτω παράδειγμα δημιουργεί μια εικόνα JPEG 1820 × 1040:

using System.Drawing;
using Aspose.Slides;

var imageSize = new Size(1820, 1040);

using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage(imageSize);
image.Save("Slide_0.jpg", ImageFormat.Jpeg);

Μετατροπή διαφανειών με σημειώσεις και σχόλια σε εικόνες

Από προεπιλογή, οι εικόνες διαφανειών δεν περιλαμβάνουν σημειώσεις ή σχόλια. Αναθέστε ένα αντικείμενο NotesCommentsLayoutingOptions στην ιδιότητα RenderingOptions.SlidesLayoutOptions για να ελέγξετε πού εμφανίζονται οι σημειώσεις και τα σχόλια.

Το παρακάτω παράδειγμα τοποθετεί περικομμένες σημειώσεις κάτω από τη διαφάνεια και σχόλια στα δεξιά της:

using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;

var scaleX = 2f;
var scaleY = scaleX;

var layoutOptions = new NotesCommentsLayoutingOptions
{
    NotesPosition = NotesPositions.BottomTruncated,
    CommentsPosition = CommentsPositions.Right,
    CommentsAreaWidth = 500,
    CommentsAreaColor = Color.AntiqueWhite
};

var renderingOptions = new RenderingOptions { SlidesLayoutOptions = layoutOptions };

using var presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage(renderingOptions, scaleX, scaleY);
image.Save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);

Μετατροπή διαφανειών σε εικόνες χρησιμοποιώντας τις επιλογές TIFF

Η κλάση TiffOptions σάς επιτρέπει να ελέγχετε το μέγεθος, την ανάλυση και άλλες ιδιότητες της αποδοθείσας εικόνας TIFF.

Το παρακάτω παράδειγμα αποδίδει την πρώτη διαφάνεια ως εικόνα TIFF 2160 × 2880 με 300 DPI:

using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;

var tiffOptions = new TiffOptions
{
    ImageSize = new Size(2160, 2880),
    DpiX = 300,
    DpiY = 300
};

using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage(tiffOptions);
image.Save("output.tiff", ImageFormat.Tiff);

Μετατροπή όλων των διαφανειών σε εικόνες

Διέλθετε τη συλλογή διαφανειών για να μετατρέψετε ολόκληρη την παρουσίαση σε σειρά εικόνων. Οι κρυμμένες διαφάνειες περιλαμβάνονται εκτός αν τις παραλείψετε σκόπιμα.

Το παρακάτω παράδειγμα αποδίδει κάθε διαφάνεια ως εικόνα JPEG με οριζόντιους και κατακόρυφους παράγοντες κλίμακας ίσους με 2:

using Aspose.Slides;

var scaleX = 2f;
var scaleY = scaleX;

using var presentation = new Presentation("Presentation.pptx");

var slideCount = presentation.Slides.Count;
for (var index = 0; index < slideCount; index++)
{
    var slide = presentation.Slides[index];
    using var image = slide.GetImage(scaleX, scaleY);
    image.Save($"Slide_{index}.jpg", ImageFormat.Jpeg);
}

Δημιουργία εξόδου Enhanced Metafile

Το Enhanced Metafile (EMF) είναι χρήσιμο όταν χρειάζεται ανταλλαγή γραφικών βασισμένων σε διανύσματα με το Microsoft Office ή άλλες εφαρμογές Windows που υποστηρίζουν Windows metafiles. Σε αντίθεση με μια εικόνα βασισμένη σε εικονοστοιχεία, ένα EMF μπορεί να διατηρήσει τις διανυσματικές εντολές σχεδίασης που κλιμακώνονται χωρίς την ίδια απώλεια ευκρίνειας. Ωστόσο, το EMF είναι κυρίως μορφή συμβατότητας για εφαρμογές με υποστήριξη Windows metafile, όχι μια παγκόσμια μορφή ανταλλαγής. Επιπλέον, το σύνθετο περιεχόμενο διαφάνειας, όπως εικόνες bitmap και ορισμένα εφέ, μπορεί να αποθηκευτεί ως ραστερισμένα στοιχεία μέσα στο διανυσματικό δοχείο metafile.

Εξαγωγή διαφάνειας σε EMF

Η μέθοδος ISlide.WriteAsEmf γράφει ένα ISlide σε ρεύμα-στόχο σε μορφή EMF. Το παρακάτω παράδειγμα φορτώνει μια παρουσίαση, επιλέγει την πρώτη διαφάνεια και τη γράφει σε ρεύμα αρχείου EMF:

using System.IO;
using Aspose.Slides;

using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];

using var emfStream = File.Create("Slide_0.emf");
slide.WriteAsEmf(emfStream);

Ο καλώντζος κατέχει το ρεύμα που περνάλθηκε στο ISlide.WriteAsEmf και πρέπει να το κλείσει ή να το απορρίψει. Το Aspose.Slides γράφει στη τρέχουσα θέση του ρεύματος και το αφήνει ανοιχτό.

Μετατροπή εικόνας SVG σε EMF και προσθήκη της σε παρουσίαση

Χρησιμοποιήστε το ISvgImage.WriteAsEmf για να μετατρέψετε περιεχόμενο SVG σε EMF. Τα παραγόμενα byte μπορούν να προστεθούν στην παρουσίαση μέσω του IImageCollection.AddImage και να τοποθετηθούν σε διαφάνεια με το IShapeCollection.AddPictureFrame.

Το παρακάτω παράδειγμα δημιουργεί ένα SvgImage από σήμανση SVG, το μετατρέπει σε EMF στη μνήμη, εισάγει το metafile στην πρώτη διαφάνεια και αποθηκεύει την παρουσίαση:

using System.IO;
using Aspose.Slides;
using Aspose.Slides.Export;

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

using var presentation = new Presentation();
var slide = presentation.Slides[0];

using var emfStream = new MemoryStream();
svgImage.WriteAsEmf(emfStream);

emfStream.Position = 0;
var image = presentation.Images.AddImage(emfStream);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 20, 20, 200, 100, image);

presentation.Save("Presentation_with_emf.pptx", SaveFormat.Pptx);

ISvgImage.WriteAsEmf δεν αναλαμβάνει την ιδιοκτησία του ρεύματος προορισμού. Μετά τη γραφή, η θέση του ρεύματος βρίσκεται στο τέλος των παραγόμενων δεδομένων. Επαναφέρετε το Position στην αρχή πριν περάσετε το ίδιο ρεύμα αναζήτησης σε έναν αναγνώστη, όπως φαίνεται παραπάνω. Κρατήστε το ρεύμα ανοιχτό μέχρι ο καταναλωτής να ολοκληρώσει την ανάγγεται του, και στη συνέχεια απορρίψτε το. Εναλλακτικά, καλέστε το ToArray και περάστε το επιστρεφόμενο byte array στο IImageCollection.AddImage; το ToArray επιστρέφει ολόκληρο το buffer ανεξάρτητα από την τρέχουσα θέση του ρεύματος.

Η δημιουργία EMF είναι διαθέσιμη στα λειτουργικά συστήματα που υποστηρίζονται από το επιλεγμένο build του Aspose.Slides for .NET, αλλά η απόδοση μπορεί να διαφέρει ανά πλατφόρμα όταν δεν υπάρχουν διαθέσιμες γραμματοσειρές ή εγγενείς εξαρτήσεις γραφικών. Εγκαταστήστε τις γραμματοσειρές που χρησιμοποιούνται από το πηγαίο περιεχόμενο ή ρυθμίστε κατάλληλες υποκατάστατες, ακολουθήστε τις platform requirements για το πακέτο Aspose.Slides και επικυρώστε το αποτέλεσμα στην εφαρμογή-προορισμό που καταναλώνει EMF. Οι εφαρμογές Linux και macOS συχνά έχουν περιορισμένη ή ασυνεπή υποστήριξη για την εμφάνιση και επεξεργασία Windows metafiles.

Απόδοση χρωματικών Emoji

Συχνές Ερωτήσεις

Το Aspose.Slides υποστηρίζει την απόδοση διαφανειών με κινούμενα σχέδια;

Όχι. Η μέθοδος GetImage αποδίδει μια στατική εικόνα της διαφάνειας και δεν εξάγει τα κινούμενα σχέδια.

Μπορούν οι κρυμμένες διαφάνειες να εξαχθούν ως εικόνες;

Ναι. Οι κρυμμένες διαφάνειες μπορούν να αποδοθούν όπως οι κανονικές διαφάνειες. Συμπεριλάβετε τες στον βρόχο επεξεργασίας, όπως φαίνεται στο παραπάνω παράδειγμα.

Διατηρούνται οι σκιές και άλλα εφέ στις εικόνες διαφάνειας;

Ναι. Το Aspose.Slides αποδίδει σκιές, διαφάνεια και άλλα υποστηριζόμενα γραφικά εφέ στις εικόνες διαφάνειας.