Verbessern 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 aufgrund von Änderungen in der Aspose.Slides für Python öffentlichen API.
Um aspose.pydrawing aus der öffentlichen API zu entfernen, haben wir die Modern API eingeführt. Methoden, die aspose.pydrawing.Image und aspose.pydrawing.Bitmap verwenden, sind veraltet und werden durch ihre Modern API‑Entsprechungen ersetzt. Methoden, die aspose.pydrawing.Graphics verwenden, sind veraltet und die Unterstützung dafür wird aus der öffentlichen API entfernt.
Die Entfernung 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— repräsentiert ein Raster- oder Vektorbild.aspose.slides.ImageFormat— repräsentiert ein Bilddateiformat.aspose.slides.Images— stellt Methoden zum Erstellen und Arbeiten mitIImagebereit.
Ein typisches Anwendungsbeispiel für die neue API sieht folgendermaßen 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 Übergang spiegelt die neue Klasse IImage die separaten APIs der Klassen Image und Bitmap wider. In den meisten Fällen müssen Sie nur Aufrufe von Methoden, die aspose.pydrawing verwenden, durch ihre Moderne API‑Entsprechungen ersetzen.
Miniaturansicht einer Folie erhalten
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")
Miniaturansicht einer Form erhalten
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")
Miniaturansicht einer Präsentation erhalten
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 ihre modernen Ersatzmethoden
Presentation Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| 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) | Will be deleted completely |
| save(fname, format, options, response, show_inline) | Will be deleted completely |
| print() | Will be deleted completely |
| print(printer_settings) | Will be deleted completely |
| print(printer_name) | Will be deleted completely |
| print(printer_settings, pres_name) | Will be deleted completely |
Slide Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| 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) | Will be deleted completely |
| render_to_graphics(options, graphics, scale_x, scale_y) | Will be deleted completely |
| render_to_graphics(options, graphics, rendering_size) | Will be deleted completely |
Shape Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
ImageCollection Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
PPImage Class
| Methoden-/Eigenschaftssignatur | Ersatzmethoden-/Eigenschaftssignatur |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
ImageWrapperFactory Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
PatternFormat Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
IPatternFormatEffectiveData Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
Output Class
| Methodensignatur | Ersatzmethodensignatur |
|---|---|
| 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 hierfür wird aus der öffentlichen API entfernt.
Die API-Mitglieder, 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 Komponenten zu eliminieren und zu einem plattformübergreifenden Ansatz mit IImage zu wechseln. Alle Rendering‑Methoden für Graphics werden entfernt.
Was ist der praktische Nutzen von 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 in verschiedenen Umgebungen portabler.
Wird die Moderne API die Performance bei der Erstellung von Miniaturansichten beeinflussen?
Der Wechsel von get_thumbnail zu get_image verschlechtert die Szenarien nicht: Die neuen Methoden bieten die gleichen Möglichkeiten, Bilder mit Optionen und Größen zu erzeugen, und behalten die Unterstützung für Rendering‑Optionen bei. Der konkrete Nutzen oder Nachteil hängt vom jeweiligen Szenario ab, funktional sind die Ersatzmethoden jedoch gleichwertig.