เพิ่มประสิทธิภาพการประมวลผลภาพด้วย Modern API
บทนำ
Aspose.Slides for Python API สาธารณะในขณะนี้ขึ้นอยู่กับประเภท aspose.pydrawing ต่อไปนี้:
aspose.pydrawing.Graphicsaspose.pydrawing.Imageaspose.pydrawing.Bitmapaspose.pydrawing.printing.PrinterSettings
ตั้งแต่เวอร์ชัน 24.4, API สาธารณะนี้ถูก เลิกใช้งาน เนื่องจาก การเปลี่ยนแปลง ใน Aspose.Slides for Python API สาธารณะ
เพื่อขจัด aspose.pydrawing ออกจาก API สาธารณะ, เราได้แนะนำ Modern API เมธอดที่ใช้ aspose.pydrawing.Image และ aspose.pydrawing.Bitmap ถูกเลิกใช้งานและควรแทนที่ด้วยเมธอดที่เทียบเท่าใน Modern API เมธอดที่ใช้ aspose.pydrawing.Graphics ถูกเลิกใช้งานและไม่มีการแทนที่โดยตรงใน Modern API
ในเวอร์ชันปัจจุบันให้ถือว่า API สาธารณะที่พึ่งพา aspose.pydrawing เป็นรุ่นเก่า/เลิกใช้งาน ใช้ Modern API สำหรับโค้ดใหม่และเมื่อย้ายกระบวนการประมวลผลภาพที่มีอยู่
API สมัยใหม่
คลาสและ enum ต่อไปนี้ได้ถูกเพิ่มเข้าไปใน API สาธารณะ:
- aspose.slides.IImage - แสดงถึงภาพแบบแรสเตอร์หรือเวกเตอร์
- aspose.slides.ImageFormat - แสดงถึงฟอร์แมตไฟล์ภาพ
- aspose.slides.Images - ให้เมธอดสำหรับสร้างและทำงานกับ IImage
ใช้ get_image เพื่อเรนเดอร์สไลด์หรือรูปร่างเดียว ใช้ get_images เพื่อเรนเดอร์สไลด์หลายสไลด์ในพรีเซนเทชัน ใช้เมธอดของ Images เพื่อโหลดภาพ, add_image กับ IImage เพื่อเพิ่มภาพเข้าไปในพรีเซนเทชัน, และ replace_image กับ IImage เพื่ออัปเดตภาพที่มีอยู่ในพรีเซนเทชัน
ตัวอย่างการใช้ API ใหม่มีลักษณะดังนี้:
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)
แทนที่โค้ดเก่าด้วย Modern API
เพื่อการเปลี่ยนแปลงที่ง่ายกว่า, คลาส IImage ใหม่จำลอง API แยกต่างหากของคลาส aspose.pydrawing.Image และ aspose.pydrawing.Bitmap ในหลายกรณีคุณเพียงแค่ต้องแทนที่การเรียกเมธอดที่ใช้ aspose.pydrawing ด้วยเมธอดเทียบเท่าใน Modern API
รับภาพย่อของสไลด์
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")
รับภาพย่อของรูปร่าง
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")
รับภาพย่อของพรีเซนเทชัน
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)
เพิ่มรูปภาพลงในพรีเซนเทชัน
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)
เมธอดและพร็อพเพอร์ตีที่จะถูกลบและการแทนที่ใน Modern API
คลาส Presentation
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| 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) | No Modern API replacement |
| save(fname, format, options, response, show_inline) | No Modern API replacement |
| print() | No Modern API replacement |
| print(printer_settings) | No Modern API replacement |
| print(printer_name) | No Modern API replacement |
| print(printer_settings, pres_name) | No Modern API replacement |
คลาส Slide
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| 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) | No Modern API replacement |
| render_to_graphics(options, graphics, scale_x, scale_y) | No Modern API replacement |
| render_to_graphics(options, graphics, rendering_size) | No Modern API replacement |
คลาส Shape
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| get_thumbnail() | get_image() |
| get_thumbnail(bounds, scale_x, scale_y) | get_image(bounds, scale_x, scale_y) |
คลาส ImageCollection
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| add_image(image: aspose.pydrawing.Image) | add_image(image) |
คลาส PPImage
| ลายเซ็นเมธอด/พร็อพเพอร์ตี | ลายเซ็นเมธอด/พร็อพเพอร์ตีแทน |
|---|---|
| replace_image(new_image: aspose.pydrawing.Image) | replace_image(new_image) |
| system_image | image |
คลาส ImageWrapperFactory
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| create_image_wrapper(image: aspose.pydrawing.Image) | create_image_wrapper(image) |
คลาส PatternFormat
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| get_tile_image(background, foreground) | get_tile(background, foreground) |
| get_tile_image(style_color) | get_tile(style_color) |
คลาส IPatternFormatEffectiveData
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| get_tile_image(background, foreground) | get_tile_i_image(background, foreground) |
คลาส Output
| ลายเซ็นเมธอด | ลายเซ็นเมธอดแทน |
|---|---|
| add(path, image: aspose.pydrawing.Image) | add(path, image) |
การสนับสนุน API สำหรับ aspose.pydrawing.Graphics
เมธอดที่ใช้ aspose.pydrawing.Graphics ถูกเลิกใช้งานและไม่มีการแทนที่โดยตรงใน Modern API
ใช้เมธอดการเรนเดอร์ภาพของ Modern API แทนการใช้ API ที่เรนเดอร์ไปยัง 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)
คำถามที่พบบ่อย
ทำไม aspose.pydrawing.Graphics ถึงถูกยกเลิก?
การสนับสนุน aspose.pydrawing.Graphics ถูกระบุว่าเลิกใช้งานใน API สาธารณะเพื่อรวมการทำงานของการเรนเดอร์และภาพ, ขจัดการเชื่อมโยงกับการพึ่งพาแพลตฟอร์มเฉพาะ, และเปลี่ยนไปใช้แนวทางข้ามแพลตฟอร์มด้วย IImage. ใช้ get_image หรือ get_images แทนการเรนเดอร์ไปยัง aspose.pydrawing.Graphics.
ประโยชน์เชิงปฏิบัติของ IImage เทียบกับ aspose.pydrawing.Image/aspose.pydrawing.Bitmap คืออะไร?
IImage ทำให้การทำงานกับภาพแรสเตอร์และเวกเตอร์ร่วมกัน, ทำให้การบันทึกเป็นฟอร์แมตต่าง ๆ ง่ายขึ้นผ่าน ImageFormat, ลดการพึ่งพา pydrawing, และทำให้โค้ดพกพาได้ดีขึ้นในหลายสภาพแวดล้อม.
Modern API จะส่งผลต่อประสิทธิภาพการสร้างภาพย่อหรือไม่?
การสลับจาก get_thumbnail ไปยัง get_image ไม่ทำให้สถานการณ์แย่ลง: เมธอดใหม่ให้ความสามารถเดียวกันในการสร้างภาพพร้อมตัวเลือกและขนาด, พร้อมการสนับสนุนตัวเลือกการเรนเดอร์ ขึ้นอยู่กับสถานการณ์อาจมีการเพิ่มหรืออาจไม่มีการเปลี่ยนแปลงประสิทธิภาพ, แต่ด้านฟังก์ชันการทำงานเทียบเท่ากัน.