Migliora l'elaborazione delle immagini con l'API Moderna
Introduzione
L’API pubblica di Aspose.Slides per Python dipende attualmente dai seguenti tipi aspose.pydrawing:
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
A partire dalla versione 24.4, questa API pubblica è deprecata a causa delle modifiche nell’API pubblica di Aspose.Slides per Python.
Per eliminare aspose.pydrawing dall’API pubblica, abbiamo introdotto l'API Moderna. I metodi che utilizzano aspose.pydrawing.Image e aspose.pydrawing.Bitmap sono deprecati e devono essere sostituiti con le loro controparti dell’API Moderna. I metodi che utilizzano aspose.pydrawing.Graphics sono deprecati e non hanno una sostituzione diretta nell’API Moderna.
Nelle versioni attuali, trattate l’API pubblica che dipende da aspose.pydrawing come legacy/deprecata. Utilizzate l’API Moderna per nuovo codice e per la migrazione dei flussi di lavoro di elaborazione delle immagini esistenti.
API Moderna
Sono state aggiunte le seguenti classi ed enum all’API pubblica:
- aspose.slides.IImage - rappresenta un’immagine raster o vettoriale.
- aspose.slides.ImageFormat - rappresenta un formato di file immagine.
- aspose.slides.Images - fornisce metodi per creare e lavorare con IImage.
Utilizzate get_image per rendere una singola diapositiva o forma. Utilizzate get_images per rendere più diapositive della presentazione. Utilizzate i metodi di Images per caricare immagini, add_image con IImage per aggiungerle a una presentazione, e replace_image con IImage per aggiornare un’immagine esistente nella presentazione.
Uno scenario tipico di utilizzo della nuova API è il seguente:
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)
Sostituire il Codice Obsoleto con l’API Moderna
Per una transizione più agevole, la nuova classe IImage rispecchia le API separate delle classi aspose.pydrawing.Image e aspose.pydrawing.Bitmap. Nella maggior parte dei casi è sufficiente sostituire le chiamate ai metodi che usano aspose.pydrawing con le loro controparti dell’API Moderna.
Ottenere una Miniatura di Diapositiva
API Deprecata:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
slide.get_thumbnail().save("slide1.png")
API Moderna:
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")
Ottenere una Miniatura di Forma
API Deprecata:
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 Moderna:
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")
Ottenere una Miniatura di Presentazione
API Deprecata:
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 Moderna:
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)
Aggiungere un’Immagine a una Presentazione
API Deprecata:
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 Moderna:
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)
Metodi e Proprietà da Rimuovere e le Loro Sostituzioni Moderne
Classe Presentation
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| 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) | Nessuna sostituzione nell’API Moderna |
| save(fname, format, options, response, show_inline) | Nessuna sostituzione nell’API Moderna |
| print() | Nessuna sostituzione nell’API Moderna |
| print(printer_settings) | Nessuna sostituzione nell’API Moderna |
| print(printer_name) | Nessuna sostituzione nell’API Moderna |
| print(printer_settings, pres_name) | Nessuna sostituzione nell’API Moderna |
Classe Slide
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| 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: ITiffOptions) |
| 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) | Nessuna sostituzione nell’API Moderna |
| render_to_graphics(options, graphics, scale_x, scale_y) | Nessuna sostituzione nell’API Moderna |
| render_to_graphics(options, graphics, rendering_size) | Nessuna sostituzione nell’API Moderna |
Classe Shape
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
Classe ImageCollection
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
Classe PPImage
| Firma del Metodo/Proprietà | Firma del Metodo/Proprietà Sostitutiva |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
Classe ImageWrapperFactory
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
Classe PatternFormat
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
Classe IPatternFormatEffectiveData
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
Classe Output
| Firma del Metodo | Firma del Metodo Sostitutivo |
|---|---|
| add(path, image: aspose.pydrawing.Image) | add(path, image) |
Supporto API per aspose.pydrawing.Graphics
I metodi che usano aspose.pydrawing.Graphics sono deprecati e non hanno una sostituzione diretta nell’API Moderna.
Utilizzate i metodi di rendering delle immagini dell’API Moderna al posto dell’API che rende su aspose.pydrawing.Graphics:
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
Perché aspose.pydrawing.Graphics è stato rimosso?
Il supporto per aspose.pydrawing.Graphics è deprecato nell’API pubblica per unificare il lavoro di rendering e immagini, eliminare le dipendenze specifiche della piattaforma e passare a un approccio cross‑platform con IImage. Utilizzate get_image o get_images invece del rendering su aspose.pydrawing.Graphics.
Qual è il vantaggio pratico di IImage rispetto a aspose.pydrawing.Image/aspose.pydrawing.Bitmap?
IImage unifica la gestione di immagini raster e vettoriali, semplifica il salvataggio in vari formati tramite ImageFormat, riduce la dipendenza da pydrawing e rende il codice più portabile tra ambienti.
La Modern API influirà sulle prestazioni di generazione delle miniature?
Passare da get_thumbnail a get_image non peggiora gli scenari: i nuovi metodi offrono le stesse capacità di produrre immagini con opzioni e dimensioni, mantenendo il supporto per le opzioni di rendering. Il guadagno o la perdita specifica dipende dallo scenario, ma funzionalmente le sostituzioni sono equivalenti.