Miniaturas son imágenes de tamaño pequeño que facilitan la visualización o el desplazamiento por la lista de imágenes. También se usan en MS PowerPoint para enumerar las diapositivas y navegar en un PPT. Al crear una aplicación de visor de PPT, es posible que deba generar imágenes en miniatura para las diapositivas. Para lograrlo, este artículo explica cómo crear miniaturas para diapositivas PPTX o PPT mediante programación en Python.
- Biblioteca Python para crear miniaturas para diapositivas PPT
- Crear miniaturas para diapositivas PPTX/PPT
- Crear miniaturas con dimensiones definidas por el usuario
Biblioteca Python para crear miniaturas para diapositivas PPT
Para crear miniaturas de diapositivas en presentaciones PPTX o PPT, usaremos Aspose.Slides for Python via .NET. La biblioteca proporciona un montón de funciones para crear y manipular presentaciones de PowerPoint. Además, te permite convertir las presentaciones a otros formatos. Puede instalar la biblioteca en sus aplicaciones desde PyPI usando el siguiente comando.
> pip install aspose.slides
Crear miniaturas para diapositivas PPT en Python
Los siguientes son los pasos para crear miniaturas para una presentación en Python.
- Primero, cargue el archivo de presentación usando la clase Presentation.
- Recorra cada ISlide en la colección Presentation.slides.
- Cree una miniatura de cada diapositiva con el método ISlide.get_thumbnail(scale\x, scale\y) y obtenga la referencia de la miniatura en un objeto de Bitmap.
- Finalmente, guarde la miniatura en el formato de imagen deseado usando el método Bitmap.save(String, ImageFormat).
El siguiente ejemplo de código muestra cómo crear miniaturas para diapositivas en una presentación PPTX en Python.
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation("presentation.pptx") as pres:
# Loop through slides
for slide in pres.slides:
# Create a full scale image
bmp = slide.get_thumbnail(1, 1)
# Save the image to disk in JPEG format
bmp.save("Thumbnail_{i}.jpg".format(i = slide.slide_number), drawing.imaging.ImageFormat.jpeg)
Cree miniaturas de PPT con dimensiones personalizadas
A menudo, es posible que deba crear miniaturas de dimensiones personalizadas. Esto se puede lograr usando las propiedades Presentation.slide\size.size.width y Presentation.slide\size.size.height. Los siguientes son los pasos para crear miniaturas de dimensiones personalizadas.
- Primero, cree una instancia de la clase Presentation para cargar la presentación.
- Luego, especifique los valores deseados de ancho y alto.
- Obtenga valores escalados de X e Y.
- Recorra cada ISlide en la colección Presentation.slides.
- Genere una miniatura de cada diapositiva usando el método ISlide.get_thumbnail(X, Y) y obtenga la referencia de la miniatura en un objeto de Bitmap.
- Finalmente, guarde la miniatura en el formato de imagen deseado usando el método Bitmap.save(string, ImageFormat).
El siguiente ejemplo de código muestra cómo crear miniaturas de un PPTX con dimensiones personalizadas.
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation("presentation.pptx") as pres:
# User defined dimension
desiredX = 1200
desiredY = 800
# Get scaled values of X and Y
ScaleX = (1.0 / pres.slide_size.size.width) * desiredX
ScaleY = (1.0 / pres.slide_size.size.height) * desiredY
# Loop through slides
for slide in pres.slides:
# Create thumbnail
bmp = slide.get_thumbnail(ScaleX, ScaleY)
# Save the image to disk in JPEG format
bmp.save("Thumbnail_{i}.jpg".format(i = slide.slide_number), drawing.imaging.ImageFormat.jpeg)
Obtenga una licencia gratis
Puede usar Aspose.Slides for Python a través de .NET sin limitaciones de evaluación solicitando una licencia temporal.
Conclusión
En este artículo, ha aprendido a crear miniaturas de diapositivas PPT en Python. Además, ha visto cómo usar dimensiones personalizadas para escalar las imágenes en miniatura de PPT. Además, puede visitar la documentación para explorar otras funciones de Aspose.Slides for Python. Además, puede informarnos sobre sus consultas a través de nuestro foro.