Optimieren Sie die Bildverarbeitung mit der Modernen API
Einleitung
Die öffentliche API von Aspose.Slides für Python hängt derzeit von den folgenden aspose.pydrawing‑Typen ab:
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
Ab Version 24.4 ist diese öffentliche API veraltet wegen Änderungen in der Aspose.Slides für Python‑Public‑API.
Um aspose.pydrawing aus der öffentlichen API zu entfernen, haben wir die Moderne API eingeführt. Methoden, die aspose.pydrawing.Image und aspose.pydrawing.Bitmap verwenden, sind veraltet und werden durch ihre Gegenstücke der Modernen API ersetzt. Methoden, die aspose.pydrawing.Graphics verwenden, sind veraltet und die Unterstützung dafür wird aus der öffentlichen API entfernt.
Das Entfernen der veralteten API, die von aspose.pydrawing abhängt, ist für die Veröffentlichung 24.8 geplant.
Moderne API
Die folgenden Klassen und Aufzählungen wurden zur öffentlichen API hinzugefügt:
aspose.slides.IImage— stellt ein Raster‑ oder Vektorbild dar.aspose.slides.ImageFormat— stellt ein Bilddateiformat dar.aspose.slides.Images— bietet Methoden zum Erstellen und Arbeiten mitIImage.
Ein typisches Anwendungsszenario für die neue API sieht so aus:
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)
Alten Code durch die Moderne API ersetzen
Für einen einfacheren Umstieg spiegelt das neue IImage‑Interface die getrennten APIs der Klassen Image und Bitmap wider. In den meisten Fällen müssen Sie lediglich Aufrufe von Methoden, die aspose.pydrawing verwenden, durch deren Gegenstücke der Modernen API ersetzen.
Ein Folien‑Thumbnail abrufen
Veraltete API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
slide.get_thumbnail().save("slide1.png")
Moderne API:
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")
Ein Shape‑Thumbnail abrufen
Veraltete API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
shape.get_thumbnail().save("shape.png")
Moderne API:
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")
Ein Präsentations‑Thumbnail abrufen
Veraltete API:
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)
Moderne API:
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)
Ein Bild zu einer Präsentation hinzufügen
Veraltete API:
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)
Moderne API:
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)
Methoden und Eigenschaften, die entfernt werden, und deren Moderne Ersatzmethoden
Presentation‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| 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) | Wird vollständig gelöscht |
| save(fname, format, options, response, show_inline) | Wird vollständig gelöscht |
| print() | Wird vollständig gelöscht |
| print(printer_settings) | Wird vollständig gelöscht |
| print(printer_name) | Wird vollständig gelöscht |
| print(printer_settings, pres_name) | Wird vollständig gelöscht |
Slide‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| 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) | Wird vollständig gelöscht |
| render_to_graphics(options, graphics, scale_x, scale_y) | Wird vollständig gelöscht |
| render_to_graphics(options, graphics, rendering_size) | Wird vollständig gelöscht |
Shape‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
ImageCollection‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
PPImage‑Klasse
| Methoden-/Eigenschaftssignatur | Ersatz-Methoden-/Eigenschaftssignatur |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
ImageWrapperFactory‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
PatternFormat‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
IPatternFormatEffectiveData‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
Output‑Klasse
| Methodensignatur | Ersatz-Methodensignatur |
|---|---|
| add(path, image: aspose.pydrawing.Image) | add(path, image) |
Unterstützung für aspose.pydrawing.Graphics wird eingestellt
Methoden, die aspose.pydrawing.Graphics verwenden, sind veraltet; die Unterstützung dafür wird aus der öffentlichen API entfernt.
Die API‑Elemente, die von aspose.pydrawing.Graphics abhängen und entfernt werden, umfassen:
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
Warum wurde aspose.pydrawing.Graphics entfernt?
Die Unterstützung für Graphics wird aus der öffentlichen API entfernt, um die Arbeit mit Rendering und Bildern zu vereinheitlichen, Abhängigkeiten von plattformspezifischen Bibliotheken zu eliminieren und zu einem plattformübergreifenden Ansatz mit IImage zu wechseln. Alle Rendering‑Methoden zu Graphics werden entfernt.
Welchen praktischen Nutzen bietet IImage im Vergleich zu Image/Bitmap?
IImage vereinheitlicht die Arbeit mit Raster‑ und Vektorbildern, vereinfacht das Speichern in verschiedene Formate über ImageFormat, reduziert die Abhängigkeit von pydrawing und macht den Code portabler über verschiedene Umgebungen hinweg.
Beeinflusst die Moderne API die Performance bei der Erstellung von Thumbnails?
Der Wechsel von get_thumbnail zu get_image verschlechtert die Szenarien nicht: Die neuen Methoden bieten die gleichen Möglichkeiten zur Bildgenerierung mit Optionen und Größen, während weiterhin Rendering‑Optionen unterstützt werden. Der konkrete Gewinn oder Verlust hängt vom Einzelfall ab, funktional sind die Ersatzmethoden jedoch äquivalent.