Převod snímků prezentace na obrázky v PHP
Úvod
Aspose.Slides for PHP via Java vám umožňuje snadno převádět snímky prezentací PowerPoint a OpenDocument do různých formátů obrázků, včetně BMP, PNG, JPG (JPEG), GIF a dalších.
Chcete-li převést snímek na obrázek, postupujte podle těchto kroků:
- Definujte požadovaná nastavení převodu a vyberte snímky, které chcete exportovat, pomocí:
- Třídy TiffOptions nebo
- Třídy RenderingOptions.
- Vytvořte obrázek snímku voláním metody getImage.
V Aspose.Slides for PHP via Java je IImage třída, která umožňuje pracovat s obrázky definovanými pixelovými daty. Tuto třídu můžete použít k ukládání obrázků v široké škále formátů (BMP, JPG, PNG atd.).
Převod snímků na bitmapy a uložení obrázků ve formátu PNG
Můžete převést snímek na objekt bitmapy a použít jej přímo ve své aplikaci. Případně můžete snímek převést na bitmapu a poté uložit obrázek ve formátu JPEG nebo jakémkoli jiném preferovaném formátu.
Tento kód ukazuje, jak převést první snímek prezentace na objekt bitmapy a následně uložit obrázek ve formátu PNG:
$presentation = new Presentation("Presentation.pptx");
try {
// Převést první snímek v prezentaci na bitmapu.
$image = $presentation->getSlides()->get_Item(0)->getImage();
try {
// Uložit obrázek ve formátu PNG.
$image->save("Slide_0.png", ImageFormat::Png);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Převod snímků na obrázky s vlastními rozměry
Možná budete potřebovat obrázek o určité velikosti. Pomocí přetížené verze metody getImage můžete převést snímek na obrázek se specifickými rozměry (šířka a výška).
Tento ukázkový kód ukazuje, jak to provést:
$imageSize = new Java("java.awt.Dimension", 1820, 1040);
$presentation = new Presentation("Presentation.pptx");
try {
// Převést první snímek v prezentaci na bitmapu s určenou velikostí.
$image = $presentation->getSlides()->get_Item(0)->getImage($imageSize);
try {
// Uložit obrázek ve formátu JPEG.
$image->save("Slide_0.jpg", ImageFormat::Jpeg);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Převod snímků s poznámkami a komentáři na obrázky
Některé snímky mohou obsahovat poznámky a komentáře.
Aspose.Slides poskytuje dvě třídy TiffOptions a RenderingOptions, které umožňují řídit vykreslování snímků prezentace do obrázků. Obě třídy obsahují metodu setSlidesLayoutOptions, která vám umožní nakonfigurovat vykreslování poznámek a komentářů na snímku při jeho převodu na obrázek.
Pomocí třídy NotesCommentsLayoutingOptions můžete určit požadovanou pozici poznámek a komentářů ve výsledném obrázku.
Tento kód ukazuje, jak převést snímek s poznámkami a komentáři:
$scaleX = 2;
$scaleY = $scaleX;
$presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
$notesCommentsOptions = new NotesCommentsLayoutingOptions();
$notesCommentsOptions->setNotesPosition(NotesPositions::BottomTruncated); // Nastavit pozici poznámek.
$notesCommentsOptions->setCommentsPosition(CommentsPositions::Right); // Nastavit pozici komentářů.
$notesCommentsOptions->setCommentsAreaWidth(500); // Nastavit šířku oblasti komentářů.
$notesCommentsOptions->setCommentsAreaColor(java("java.awt.Color")->LIGHT_GRAY); // Nastavit barvu oblasti komentářů.
// Vytvořit možnosti vykreslování.
$options = new RenderingOptions();
$options->setSlidesLayoutOptions($notesCommentsOptions);
// Převést první snímek prezentace na obrázek.
$image = $presentation->getSlides()->get_Item(0)->getImage($options, $scaleX, $scaleY);
try {
// Uložit obrázek ve formátu GIF.
$image->save("Image_with_notes_and_comments_0.gif", ImageFormat::Gif);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Note
V jakémkoli procesu převodu snímku na obrázek metoda setNotesPosition nemůže použítBottomFull (pro určení pozice poznámek), protože text poznámky může být příliš dlouhý a nevejde se do určené velikosti obrázku.
Převod snímků na obrázky pomocí TIFF možností
Třída TiffOptions poskytuje větší kontrolu nad výsledným TIFF obrázkem tím, že umožňuje specifikovat parametry jako velikost, rozlišení, barevná paleta a další.
Tento kód ukazuje proces převodu, kde jsou použity TIFF možnosti k vytvoření černobílého obrázku s rozlišením 300 DPI a velikostí 2160 x 2800:
// Načíst soubor prezentace.
$presentation = new Presentation("sample.pptx");
try {
// Získat první snímek z prezentace.
$slide = $presentation->getSlides()->get_Item(0);
// Nastavit konfiguraci výstupního TIFF obrázku.
$options = new TiffOptions();
$options->setImageSize(new Java("java.awt.Dimension", 2160, 2880)); // Nastavit velikost obrázku.
$options->setPixelFormat(ImagePixelFormat::Format1bppIndexed); // Nastavit formát pixelů (černobílý).
$options->setDpiX(300); // Nastavit horizontální rozlišení.
$options->setDpiY(300); // Nastavit vertikální rozlišení.
// Převést snímek na obrázek s určenými možnostmi.
$image = $slide->getImage($options);
try {
// Uložit obrázek ve formátu TIFF.
$image->save("output.tiff", ImageFormat::Tiff);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Note
Podpora TIFF není zaručena ve verzích starších než JDK 9.Převod všech snímků na obrázky
Aspose.Slides vám umožňuje převést všechny snímky v prezentaci na obrázky, čímž prakticky převede celou prezentaci na sérii obrázků.
Tento ukázkový kód ukazuje, jak v PHP převést všechny snímky v prezentaci na obrázky:
$scaleX = 2;
$scaleY = $scaleX;
$presentation = new Presentation("Presentation.pptx");
try {
// Vykreslit prezentaci do obrázků snímek po snímku.
for($i = 0; $i < java_values($presentation->getSlides()->size()) ; $i++) {
// Ovládání skrytých snímků (nevykreslovat skryté snímky).
if (java_values($presentation->getSlides()->get_Item($i)->getHidden())) {
continue;
}
// Převést snímek na obrázek.
$image = $presentation->getSlides()->get_Item($i)->getImage($scaleX, $scaleY);
try {
// Uložit obrázek ve formátu JPEG.
$image->save("Slide_" . $i . ".jpg", ImageFormat::Jpeg);
} finally {
$image->dispose();
}
}
} finally {
$presentation->dispose();
}
FAQ
Podporuje Aspose.Slides vykreslování snímků s animacemi?
Ne, metoda getImage uloží pouze statický obrázek snímku, bez animací.
Lze skryté snímky exportovat jako obrázky?
Ano, skryté snímky lze zpracovat stejně jako běžné. Jen se ujistěte, že jsou zahrnuty ve smyčce zpracování.
Lze obrázky uložit se stíny a efekty?
Ano, Aspose.Slides podporuje vykreslování stínů, průhlednosti a dalších grafických efektů při ukládání snímků jako obrázků.