Améliorer le traitement d'images avec l'API Moderne
Introduction
L’API publique Aspose.Slides for Python dépend actuellement des types aspose.pydrawing suivants:
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
À partir de la version 24.4, cette API publique est obsolète en raison des modifications de l’API publique Aspose.Slides for Python.
Pour éliminer aspose.pydrawing de l’API publique, nous avons introduit l'API Moderne. Les méthodes qui utilisent aspose.pydrawing.Image et aspose.pydrawing.Bitmap sont obsolètes et seront remplacées par leurs équivalents de l’API Moderne. Les méthodes qui utilisent aspose.pydrawing.Graphics sont obsolètes, et leur prise en charge sera supprimée de l’API publique.
La suppression de l’API obsolète qui dépend de aspose.pydrawing est prévue pour la version 24.8.
API Moderne
Les classes et énumérations suivantes ont été ajoutées à l’API publique :
aspose.slides.IImage— représente une image raster ou vectorielle.aspose.slides.ImageFormat— représente un format de fichier image.aspose.slides.Images— fournit des méthodes pour créer et manipuler desIImage.
Un scénario d’utilisation typique de la nouvelle API ressemble à ceci:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation() as presentation:
slide = presentation.slides[0]
with slides.Images.from_file("image.png") as image:
pp_image = presentation.images.add_image(image)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, pp_image)
with slide.get_image(drawing.Size(1920, 1080)) as slide_image:
slide_image.save("slide1.jpeg", slides.ImageFormat.JPEG)
Remplacer le code ancien par l’API Moderne
Pour faciliter la transition, la nouvelle interface IImage reflète les API distinctes des classes Image et Bitmap. Dans la plupart des cas, il suffit de remplacer les appels aux méthodes qui utilisent aspose.pydrawing par leurs équivalents de l’API Moderne.
Obtenir une vignette de diapositive
API obsolète:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
slide.get_thumbnail().save("slide1.png")
API Moderne:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
with slide.get_image() as image:
image.save("slide1.png")
Obtenir une vignette de forme
API obsolète:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
shape.get_thumbnail().save("shape.png")
API Moderne:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
with shape.get_image() as image:
image.save("shape.png")
Obtenir une vignette de présentation
API obsolète:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation("sample.pptx") as presentation:
thumbnails = presentation.get_thumbnails(slides.export.RenderingOptions(), drawing.Size(1980, 1028))
for index, thumbnail in enumerate(thumbnails):
thumbnail.save(f"slide_{index}.png", drawing.imaging.ImageFormat.png)
API Moderne:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation("sample.pptx") as presentation:
thumbnails = presentation.get_images(slides.export.RenderingOptions(), drawing.Size(1980, 1028))
for index, thumbnail in enumerate(thumbnails):
thumbnail.save(f"slide_{index}.png", slides.ImageFormat.PNG)
Ajouter une image à une présentation
API obsolète:
import aspose.slides as slides
import aspose.pydrawing as drawing
with slides.Presentation() as presentation:
slide = presentation.slides[0]
image = drawing.Image.from_file("image.png")
pp_image = presentation.images.add_image(image)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, pp_image)
API Moderne:
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
with slides.Images.from_file("image.png") as image:
pp_image = presentation.images.add_image(image)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, pp_image)
Méthodes et propriétés à supprimer et leurs remplacements modernes
Classe Presentation
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| get_thumbnails(options) | get_images(options) |
| get_thumbnails(options, slides) | get_images(options, slides) |
| get_thumbnails(options, scale_x, scale_y) | get_images(options, scale_x, scale_y) |
| get_thumbnails(options, slides, scale_x, scale_y) | get_images(options, slides, scale_x, scale_y) |
| get_thumbnails(options, image_size) | get_images(options, image_size) |
| get_thumbnails(options, slides, image_size) | get_images(options, slides, image_size) |
| save(fname, format, response, show_inline) | Sera supprimé complètement |
| save(fname, format, options, response, show_inline) | Sera supprimé complètement |
| print() | Sera supprimé complètement |
| print(printer_settings) | Sera supprimé complètement |
| print(printer_name) | Sera supprimé complètement |
| print(printer_settings, pres_name) | Sera supprimé complètement |
Classe Slide
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(scale_x, scale_y) | get_image(scale_x, scale_y) |
| get_thumbnail(image_size) | get_image(image_size) |
| get_thumbnail(options) | get_image(options: ITiffOotions) |
| get_thumbnail(options) | get_image(options: IRenderingOptions) |
| get_thumbnail(options, scale_x, scale_y) | get_image(options, scale_x, scale_y) |
| get_thumbnail(options, image_size) | get_image(options, image_size) |
| render_to_graphics(options, graphics) | Sera supprimé complètement |
| render_to_graphics(options, graphics, scale_x, scale_y) | Sera supprimé complètement |
| render_to_graphics(options, graphics, rendering_size) | Sera supprimé complètement |
Classe Shape
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
Classe ImageCollection
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
Classe PPImage
| Signature de la méthode/propriété | Signature de la méthode/propriété de remplacement |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
Classe ImageWrapperFactory
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
Classe PatternFormat
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
Classe IPatternFormatEffectiveData
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
Classe Output
| Signature de la méthode | Signature de la méthode de remplacement |
|---|---|
| add(path, image: aspose.pydrawing.Image) | add(path, image) |
Le support de l’API pour aspose.pydrawing.Graphics sera interrompu
Les méthodes qui utilisent aspose.pydrawing.Graphics sont obsolètes ; leur prise en charge sera supprimée de l’API publique.
Les membres de l’API qui reposent sur aspose.pydrawing.Graphics et qui seront supprimés sont :
aspose.pydrawing.Slide.render_to_graphics(options, graphics)aspose.pydrawing.Slide.render_to_graphics(options, graphics, scale_x, scale_y)aspose.pydrawing.Slide.render_to_graphics(options, graphics, rendering_size)
FAQ
Pourquoi aspose.pydrawing.Graphics a-t-il été supprimé ?
Le support de Graphics est retiré de l’API publique afin d’unifier le travail avec le rendu et les images, d’éliminer les dépendances spécifiques à la plateforme et de passer à une approche multiplateforme avec IImage. Toutes les méthodes de rendu vers Graphics seront supprimées.
Quel est l’avantage pratique d’IImage par rapport à Image/Bitmap ?
IImage unifie la manipulation des images raster et vectorielles, simplifie l’enregistrement dans divers formats via ImageFormat, réduit la dépendance à pydrawing et rend le code plus portable entre différents environnements.
L’API Moderne affectera-t-elle les performances de génération des miniatures ?
Passer de get_thumbnail à get_image n’altère pas les scénarios : les nouvelles méthodes offrent les mêmes capacités de création d’images avec options et tailles, tout en conservant la prise en charge des options de rendu. Le gain ou la perte spécifiques dépendent du scénario, mais fonctionnellement les remplacements sont équivalents.