Μετατροπή διαφανειών PowerPoint σε PNG με PHP

Επισκόπηση

Αυτό το άρθρο εξηγεί πώς να μετατρέψετε διαφάνειες παρουσίασης σε εικόνες PNG χρησιμοποιώντας το Aspose.Slides για PHP μέσω Java. Μπορείτε να φορτώσετε παρουσιάσεις σε μορφές όπως PPT, PPTX και ODP, να αποδώσετε κάθε διαφάνεια και να την αποθηκεύσετε ως ξεχωριστή εικόνα PNG.

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

Μετατροπή PowerPoint σε PNG

Φορτώστε μια παρουσίαση με την κλάση Presentation και αποκτήστε πρόσβαση στις διαφάνειες μέσω της συλλογής Presentation::getSlides. Το παράδειγμα αποδίδει κάθε διαφάνεια με το Slide::getImage χωρίς παραμέτρους για να δημιουργήσει μια μικρογραφία. Στη συνέχεια καλεί το IImage::save με το ImageFormat::Png για να αποθηκεύσει κάθε αποδιδόμενη διαφάνεια ως εικόνα PNG.

use aspose\slides\ImageFormat;
use aspose\slides\Presentation;

$presentation = new Presentation("presentation.pptx");
try {
    $slideCount = java_values($presentation->getSlides()->size());
    for ($index = 0; $index < $slideCount; $index++) {
        $slide = $presentation->getSlides()->get_Item($index);
        $image = $slide->getImage();
        try {
            $image->save("slide_" . $index . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

Μετατροπή PowerPoint σε PNG με Προσαρμοσμένες Διαστάσεις

Περάστε οριζόντιους και κατακόρυφους παράγοντες κλίμακας στο Slide::getImage για να ελέγξετε τις αποδιδόμενες διαστάσεις. Σε αυτό το παράδειγμα, και οι δύο παράγοντες είναι 2, έτσι μια διαφάνεια μεγέθους 720 × 540 σημεία παράγει εικόνα 1440 × 1080 εικονοστοιχεία. Οι ίσοι παράγοντες κλίμακας διατηρούν την αναλογία διαστάσεων της διαφάνειας. Κάθε εικόνα αποθηκεύεται σε μορφή PNG με το IImage::save.

use aspose\slides\ImageFormat;
use aspose\slides\Presentation;

$presentation = new Presentation("presentation.pptx");
try {
    $scaleX = 2.0;
    $scaleY = $scaleX;

    $slideCount = java_values($presentation->getSlides()->size());
    for ($index = 0; $index < $slideCount; $index++) {
        $slide = $presentation->getSlides()->get_Item($index);
        $image = $slide->getImage($scaleX, $scaleY);
        try {
            $image->save("slide_" . $index . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

Μετατροπή PowerPoint σε PNG με Προσαρμοσμένο Μέγεθος

Για να καθορίσετε τις διαστάσεις εξόδου σε εικονοστοιχεία, περάστε ένα μέγεθος στο Slide::getImage αντί για παράγοντες κλίμακας. Αυτό το παράδειγμα αποδίδει κάθε διαφάνεια στα 960 × 720 εικονοστοιχεία και αποθηκεύει το αποτέλεσμα με το IImage::save. Επιλέξτε διαστάσεις που ταιριάζουν με την αναλογία διαστάσεων της διαφάνειας ώστε να αποφύγετε το τέντωμα της εικόνας.

use aspose\slides\ImageFormat;
use aspose\slides\Presentation;

$presentation = new Presentation("presentation.pptx");
try {
    $imageSize = new Java("java.awt.Dimension", 960, 720);

    $slideCount = java_values($presentation->getSlides()->size());
    for ($index = 0; $index < $slideCount; $index++) {
        $slide = $presentation->getSlides()->get_Item($index);
        $image = $slide->getImage($imageSize);
        try {
            $image->save("slide_" . $index . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

Επιλογή Στυλ Απεικόνισης Διαβάθμισης

Υποθέτουμε ότι μια διαφάνεια περιέχει διαβαθμισμένες γεμίσεις, αλλά οι μεταβάσεις στην εξαγόμενη PNG φαίνονται πιο ανοιχτές ή διαφορετικές από ό,τι βλέπετε στο PowerPoint. Μπορείτε να χρησιμοποιήσετε τη μέθοδο SaveOptions::setGradientStyle που κληρονομείται από το RenderingOptions για να επιλέξετε πώς θα αποδίδονται οι διαβαθμίσεις.

Κατεβάστε το gradient-styles.pptx και τοποθετήστε το στον φάκελο εργασίας της εφαρμογής. Η πρώτη διαφάνειά του περιέχει δύο γραμμικές διαβαθμίσεις: κυανό προς πορτοκαλί στην κορυφή και μπλε προς κίτρινο στο κάτω μέρος. Κάθε διαβάθμιση έχει δύο στάσεις, στο 0% και το 100%.

Το παρακάτω παράδειγμα φορτώνει αυτήν την παρουσίαση και αποδίδει την ίδια πρώτη διαφάνεια και στις δύο λειτουργίες με το Slide::getImage.

use aspose\slides\GradientStyle;
use aspose\slides\ImageFormat;
use aspose\slides\Presentation;
use aspose\slides\RenderingOptions;

$presentation = new Presentation("gradient-styles.pptx");
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $gradientStyles = [GradientStyle::Default, GradientStyle::PowerPointUI];
    foreach ($gradientStyles as $style) {
        $options = new RenderingOptions();
        $options->setGradientStyle($style);

        $styleName = $style == GradientStyle::Default ? "Default" : "PowerPointUI";
        $image = $slide->getImage($options, 1.0, 1.0);
        try {
            $image->save("gradient-" . $styleName . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

Οι εικόνες παρακάτω δείχνουν το αποτέλεσμα από την ίδια διαφάνεια, με και τις δύο διαβαθμίσεις σε κάθε εικόνα:

Default PowerPointUI
Διαβαθμίσεις από κυανό προς πορτοκαλί και από μπλε προς κίτρινο αποδομένες με Default Ίδιες διαβαθμίσεις αποδομένες με PowerPointUI

Σε αυτό το παράδειγμα, το Default παράγει πιο ανοιχτά ενδιάμεσα χρώματα, ενώ το PowerPointUI παράγει πιο σκούρα ενδιάμεσα χρώματα. Η διαφορά εξαρτάται από τα χρώματα και τις στάσεις στη διαβάθμιση.

Επιλέξτε το Default όταν η τυπική έξοδος του Aspose.Slides εξυπηρετεί τις ανάγκες σας. Δοκιμάστε το PowerPointUI όταν η προτεραιότητά σας είναι να ταιριάζει με την εμφάνιση στο PowerPoint. Συγκρίνετε και τις δύο εξόδους με το επιθυμητό αποτέλεσμα· καμία λειτουργία δεν είναι γενικά προτιμότερη.

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

Πώς μπορώ να εξάγω ένα συγκεκριμένο σχήμα, όπως ένα γράφημα ή εικόνα, αντί για ολόκληρη τη διαφάνεια;

Το Aspose.Slides υποστηρίζει τη δημιουργία μικρογραφιών για μεμονωμένα σχήματα, επιτρέποντάς σας να αποδώσετε ένα σχήμα ως εικόνα PNG.

Υποστηρίζεται η παράλληλη μετατροπή σε διακομιστή;

Ναι. Χρησιμοποιήστε ξεχωριστό αντικείμενο παρουσίασης για κάθε νήμα ή διεργασία· μην μοιράζεστε ένα ενιαίο αντικείμενο μεταξύ νημάτων.

Ποιους περιορισμούς έχει η δοκιμαστική έκδοση κατά την εξαγωγή σε PNG;

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