Převod snímků prezentace na obrázky v Node.js přes .NET
Přehled
Aspose.Slides for Node.js via .NET vykresluje snímky z prezentací PowerPoint a OpenDocument jako obrázky, například pro zobrazení náhledů snímků na webové stránce. Tento článek ukazuje dva způsoby, jak zvolit velikost obrázku: měřítko relativně k velikosti snímku a přesnou velikost v pixelech. Obě ukázky ukládají soubory PNG.
Ukázky očekávají prezentaci pojmenovanou sample.pptx ve složce projektu, kterou jste vytvořili v Installation. Lze použít libovolnou prezentaci PowerPoint. Uložte každou ukázku jako soubor s příponou .js do složky projektu a spusťte ji z této složky pomocí node.
Note
Aspose.Slides for Node.js via .NET nemá vlastní referenci API. Zrcadlí API Aspose.Slides pro .NET s názvy ve stylu camelCase, takže odkazy na API v tomto článku vedou na odpovídající třídy a členy v Aspose.Slides for .NET API reference.Pro převod snímku na obrázek postupujte podle následujících kroků:
- Otevřete prezentaci pomocí konstruktoru Presentation.
- Získáte snímek ze sbírky slides metodou
get(index). Indexy začínají od 0. - Vykreslete snímek pomocí
getImageWithScalenebogetImageWithImageSize. V referenci .NET API jsou oba přetížení metody Slide.GetImage. Vrací objekt obrázku odpovídající typu IImage. - Uložte obrázek pomocí jeho metody save a hodnoty ImageFormat, a poté zavolejte jeho metodu
dispose.
Převést každý snímek na PNG obrázek
getImageWithScale přijímá horizontální a vertikální faktor měřítka. Při měřítku 1 se jeden bod snímku stane jedním pixelem obrázku. Následující příklad vykresluje každý snímek při měřítku 2:
const { Presentation, ImageFormat } = require("aspose.slides.via.net");
// Měřítko 1 vykresluje jeden pixel na bod; 2 zdvojnásobí šířku i výšku.
const scaleX = 2;
const scaleY = scaleX;
const presentation = new Presentation("sample.pptx");
try {
const slideCount = presentation.slides.count;
for (let index = 0; index < slideCount; index++) {
const slide = presentation.slides.get(index);
const image = slide.getImageWithScale(scaleX, scaleY);
try {
image.save(`slide_${index + 1}.png`, ImageFormat.Png);
} finally {
image.dispose();
}
}
console.log(`Saved ${slideCount} images`);
} finally {
presentation.dispose();
}
Skript zapíše jeden soubor na snímek, např. slide_1.png, slide_2.png a tak dále, číslované od 1. Pro prezentaci 16:9 se snímky o rozměrech 960 × 540 bodů vytvoří obrázky o rozměrech 1920 × 1080 pixelů. Skryté snímky jsou také vykresleny; pro jejich přeskočení zkontrolujte vlastnost hidden snímku. Každý obrázek je uvolněn ve svém vlastním bloku finally, což ho uvolní před vykreslením dalšího snímku. Bez licence se na obrázcích také objeví vodoznak evaluace; viz Licensing.
Převést snímek na obrázek o dané velikosti
getImageWithImageSize přijímá objekt s width a height v pixelech. Následující příklad vykresluje první snímek s šířkou 1280 pixelů a výšku spočítá podle velikosti snímku, takže obrázek zachová poměr stran snímku:
const { Presentation, ImageFormat } = require("aspose.slides.via.net");
const imageWidth = 1280;
const presentation = new Presentation("sample.pptx");
try {
const slideSize = presentation.slideSize.size;
const imageHeight = Math.round(imageWidth * slideSize.height / slideSize.width);
const slide = presentation.slides.get(0);
const image = slide.getImageWithImageSize({ width: imageWidth, height: imageHeight });
try {
image.save("slide_1_1280px.png", ImageFormat.Png);
} finally {
image.dispose();
}
console.log(`Saved a ${imageWidth} x ${imageHeight} image`);
} finally {
presentation.dispose();
}
Vlastnost slideSize.size vrací šířku a výšku snímku v bodech. Pro prezentaci 16:9 skript vypíše Saved a 1280 x 720 image a vytvoří soubor slide_1_1280px.png; pro prezentaci 4:3 má obrázek rozměry 1280 × 960 pixelů.
FAQ
Proč je obrázek z getImage bez parametrů tak malý?
Bez parametrů getImage vykresluje snímek na 20 % jeho velikosti v bodech, takže snímek 960 × 540 bodů se změní na obrázek 192 × 108 pixelů. Použijte getImageWithScale nebo getImageWithImageSize pro volbu velikosti.
Jak uložit JPEG nebo jiný formát obrázku?
Předejte metodě save obrázku jinou hodnotu ImageFormat, např. image.save("slide_1.jpg", ImageFormat.Jpeg). Formát vychází z hodnoty ImageFormat, nikoli z přípony souboru, takže je třeba je sladit.
Proč text na obrázcích vypadá na Linuxu jinak?
Aspose.Slides může používat pouze fonty nainstalované na počítači, který snímky vykresluje. Když prezentace používá font, který chybí (např. Calibri na typickém Linux serveru), Aspose.Slides použije místo něj nainstalovaný font, což může změnit vzhled textu a jeho zalomení. Nainstalujte fonty, které vaše prezentace používají, abyste získali stejné obrázky jako ve Windows.
Proč getThumbnailWithImageSize selhává s TypeError?
README balíčku používá getThumbnailWithImageSize, ale balíček neobsahuje metody getThumbnail. Místo toho použijte getImageWithImageSize; přijímá stejný argument { width, height }.