Tingkatkan Pemrosesan Gambar dengan API Modern
Pendahuluan
API publik Aspose.Slides for Python saat ini bergantung pada tipe aspose.pydrawing berikut:
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
Mulai versi 24.4, API publik ini tidak lagi direkomendasikan karena perubahan pada API publik Aspose.Slides for Python.
Untuk menghilangkan aspose.pydrawing dari API publik, kami memperkenalkan API Modern. Metode yang menggunakan aspose.pydrawing.Image dan aspose.pydrawing.Bitmap tidak lagi direkomendasikan dan harus diganti dengan padanan API Modern mereka. Metode yang menggunakan aspose.pydrawing.Graphics tidak lagi direkomendasikan dan tidak memiliki pengganti langsung di API Modern.
Pada versi saat ini, perlakukan API publik yang bergantung pada aspose.pydrawing sebagai warisan/tidak direkomendasikan. Gunakan API Modern untuk kode baru dan saat memigrasikan alur kerja pemrosesan gambar yang ada.
API Modern
Kelas dan enum berikut telah ditambahkan ke API publik:
- aspose.slides.IImage – merepresentasikan gambar raster atau vektor.
- aspose.slides.ImageFormat – merepresentasikan format berkas gambar.
- aspose.slides.Images – menyediakan metode untuk membuat dan bekerja dengan IImage.
Gunakan get_image untuk merender satu slide atau bentuk. Gunakan get_images untuk merender beberapa slide presentasi. Gunakan metode Images untuk memuat gambar, add_image dengan IImage untuk menambahkannya ke presentasi, dan replace_image dengan IImage untuk memperbarui gambar presentasi yang sudah ada.
Skenario penggunaan tipikal untuk API baru terlihat seperti ini:
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)
Ganti Kode Lama dengan API Modern
Untuk transisi yang lebih mudah, kelas baru IImage mencerminkan API terpisah dari kelas aspose.pydrawing.Image dan aspose.pydrawing.Bitmap. Dalam kebanyakan kasus, Anda hanya perlu mengganti pemanggilan metode yang menggunakan aspose.pydrawing dengan padanan API Modern mereka.
Dapatkan Thumbnail Slide
Deprecated API:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
slide.get_thumbnail().save("slide1.png")
Modern 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")
Dapatkan Thumbnail Bentuk
Deprecated 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")
Modern 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")
Dapatkan Thumbnail Presentasi
Deprecated 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)
Modern 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)
Tambah Gambar ke Presentasi
Deprecated 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)
Modern 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)
Metode dan Properti yang Akan Dihapus serta Pengganti Modernnya
Presentation Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| 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) | Tidak ada pengganti API Modern |
| save(fname, format, options, response, show_inline) | Tidak ada pengganti API Modern |
| print() | Tidak ada pengganti API Modern |
| print(printer_settings) | Tidak ada pengganti API Modern |
| print(printer_name) | Tidak ada pengganti API Modern |
| print(printer_settings, pres_name) | Tidak ada pengganti API Modern |
Slide Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| 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) | Tidak ada pengganti API Modern |
| render_to_graphics(options, graphics, scale_x, scale_y) | Tidak ada pengganti API Modern |
| render_to_graphics(options, graphics, rendering_size) | Tidak ada pengganti API Modern |
Shape Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
ImageCollection Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
PPImage Class
| Tanda Tangan Metode/Properti | Tanda Tangan Metode/Properti Pengganti |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
ImageWrapperFactory Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
PatternFormat Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
IPatternFormatEffectiveData Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
Output Class
| Tanda Tangan Metode | Tanda Tangan Metode Pengganti |
|---|---|
| add(path, image: aspose.pydrawing.Image) | add(path, image) |
Dukungan API untuk aspose.pydrawing.Graphics
Metode yang menggunakan aspose.pydrawing.Graphics tidak lagi direkomendasikan dan tidak memiliki pengganti langsung di API Modern.
Gunakan metode rendering gambar API Modern alih-alih API yang merender ke 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
Mengapa aspose.pydrawing.Graphics dihilangkan?
Dukungan untuk aspose.pydrawing.Graphics tidak lagi direkomendasikan dalam API publik untuk menyatukan kerja dengan rendering dan gambar, menghilangkan ketergantungan pada platform tertentu, serta beralih ke pendekatan lintas platform dengan IImage. Gunakan get_image atau get_images alih-alih merender ke aspose.pydrawing.Graphics.
Apa manfaat praktis dari IImage dibandingkan aspose.pydrawing.Image/aspose.pydrawing.Bitmap?
IImage menyatukan kerja dengan gambar raster dan vektor, menyederhanakan penyimpanan ke berbagai format melalui ImageFormat, mengurangi ketergantungan pada pydrawing, dan membuat kode lebih portabel antar lingkungan.
Apakah API Modern memengaruhi kinerja pembuatan thumbnail?
Berpindah dari get_thumbnail ke get_image tidak memperburuk skenario: metode baru memberikan kemampuan yang sama untuk menghasilkan gambar dengan opsi dan ukuran, sambil tetap mendukung opsi rendering. Keuntungan atau penurunan spesifik tergantung pada skenario, tetapi secara fungsional pengganti tersebut setara.