تعزيز معالجة الصور باستخدام الواجهة البرمجية الحديثة
مقدمة
يعتمد 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 العام، قدمنا الواجهة البرمجية الحديثة. الطرق التي تستخدم aspose.pydrawing.Image وaspose.pydrawing.Bitmap مهجورة ويجب استبدالها بنظيراتها في الواجهة الحديثة. الطرق التي تستخدم aspose.pydrawing.Graphics مهجورة ولا توجد لها بديلة مباشرة في الواجهة الحديثة.
في الإصدارات الحالية، عُد الـ API العام الذي يعتمد على aspose.pydrawing إلى الكود القديم/المهجور. استخدم الواجهة الحديثة في الكود الجديد وعند ترحيل سير عمل معالجة الصور الحالي.
الواجهة البرمجية الحديثة
تمت إضافة الفئات والعدد الثابتة التالية إلى الـ API العام:
- aspose.slides.IImage - يمثل صورة نقطية أو متجهية.
- aspose.slides.ImageFormat - يمثل تنسيق ملف صورة.
- aspose.slides.Images - يوفر طرقًا لإنشاء والعمل مع IImage.
استخدم get_image لتصوير شريحة أو شكل واحد. استخدم get_images لتصوير عدة شرائح من العرض التقديمي. استخدم Images لتحميل الصور، وadd_image مع IImage لإضافتها إلى عرض تقديمي، وreplace_image مع IImage لتحديث صورة عرض تقديمي موجودة.
سيناريو الاستخدام النموذجي للواجهة البرمجية الجديدة يبدو هكذا:
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)
استبدال الكود القديم بالواجهة البرمجية الحديثة
لتسهيل الانتقال، تعكس الفئة الجديدة IImage واجهات برمجية منفصلة لـ aspose.pydrawing.Image وaspose.pydrawing.Bitmap. في معظم الحالات، تحتاج فقط إلى استبدال استدعاءات الطرق التي تستخدم aspose.pydrawing بنظيراتها في الواجهة الحديثة.
الحصول على صورة مصغرة للشريحة
الواجهة البرمجية القديمة:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
slide.get_thumbnail().save("slide1.png")
الواجهة البرمجية الحديثة:
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")
الحصول على صورة مصغرة للشكل
الواجهة البرمجية القديمة:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
shape.get_thumbnail().save("shape.png")
الواجهة البرمجية الحديثة:
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")
الحصول على صورة مصغرة للعرض التقديمي
الواجهة البرمجية القديمة:
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)
الواجهة البرمجية الحديثة:
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)
إضافة صورة إلى عرض تقديمي
الواجهة البرمجية القديمة:
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)
الواجهة البرمجية الحديثة:
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)
الطرق والخصائص التي سيتم إزالتها واستبدالاتها الحديثة
فئة 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) | لا يوجد استبدال للواجهة البرمجية الحديثة |
| save(fname, format, options, response, show_inline) | لا يوجد استبدال للواجهة البرمجية الحديثة |
| print() | لا يوجد استبدال للواجهة البرمجية الحديثة |
| print(printer_settings) | لا يوجد استبدال للواجهة البرمجية الحديثة |
| print(printer_name) | لا يوجد استبدال للواجهة البرمجية الحديثة |
| print(printer_settings, pres_name) | لا يوجد استبدال للواجهة البرمجية الحديثة |
فئة 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) | لا يوجد استبدال للواجهة البرمجية الحديثة |
| render_to_graphics(options, graphics, scale_x, scale_y) | لا يوجد استبدال للواجهة البرمجية الحديثة |
| render_to_graphics(options, graphics, rendering_size) | لا يوجد استبدال للواجهة البرمجية الحديثة |
فئة 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 مهجورة ولا يوجد لها بديل مباشر في الواجهة الحديثة.
استخدم طرق تصيير الصور في الواجهة الحديثة بدلاً من الطرق التي تصيّر إلى 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، ويجعل الكود أكثر قابلية للنقل بين البيئات.
هل ستؤثر الواجهة البرمجية الحديثة على أداء إنشاء الصور المصغرة؟
الانتقال من get_thumbnail إلى get_image لا يضيف سلبيات في معظم السيناريوهات؛ الطرق الجديدة توفر نفس القدرات لإنشاء الصور مع الخيارات والأحجام، مع الحفاظ على دعم خيارات التصيير. الفائدة أو الفقدان الفعلي يعتمد على السيناريو، لكن وظائف الاستبدال متكافئة.