واجهة برمجة التطبيقات الحديثة

المقدمة

تاريخياً، كانت Aspose Slides تعتمد على System.Drawing وتحتوي في واجهة برمجة التطبيقات العامة على الفئات التالية من هناك:

اعتبارًا من الإصدار 24.4، تم إعلان أن واجهة برمجة التطبيقات العامة هذه أصبحت قديمة.

نظرًا لأن دعم System.Drawing في الإصدارات .NET6 وما فوق تم إزالته للإصدارات غير الخاصة بنظام ويندوز (تغيير جذري)، قامت Slides بتنفيذ نهج يعتمد على إصدارين من المكتبة:

العيب في Aspose.Slides.NET6.CrossPlatform هو أنه ينفذ نسخته الخاصة من System.Drawing في نفس المساحة الاسمية (للدعم التوافقي مع واجهة برمجة التطبيقات العامة). وبالتالي، عند استخدام Aspose.Slides.NET6.CrossPlatform و System.Drawing من .NETFramework أو حزمة System.Drawing.Common في نفس الوقت، يحدث تعارض في الأسماء ما لم يتم استخدام اسم مستعار.

للتخلص من التبعيات على System.Drawing في الحزمة الرئيسية Aspose.Slides.NET، أضفنا ما يسمى “واجهة برمجة التطبيقات الحديثة” - أي الواجهة التي ينبغي استخدامها بدلاً من الواجهة الموقوفة، والتي تحتوي تواقيعها على تبعيات من الأنواع التالية من System.Drawing: Image و Bitmap. وتم إعلان أن PrinterSettings و Graphics أصبحت قديمة وتمت إزالة دعمها من واجهة برمجة التطبيقات العامة لـ Slides.

سيتم إزالة واجهة برمجة التطبيقات العامة القديمة التي تحتوي على تبعيات على System.Drawing في الإصدار 24.8.

واجهة برمجة التطبيقات الحديثة

تم إضافة الفئات والإعدادات التالية إلى واجهة برمجة التطبيقات العامة:

  • Aspose.Slides.IImage - تمثل الصورة النقطية أو الصورة المتجهة.
  • Aspose.Slides.ImageFormat - تمثل تنسيق ملف الصورة.
  • Aspose.Slides.Images - طرق لإنشاء والعمل مع واجهة IImage.

يرجى ملاحظة أن IImage قابلة للتصرف (تنفذ واجهة IDisposable ويجب إلحاق استخدامها بـ using أو التخلص منها بطريقة أخرى ملائمة).

قد يبدو سيناريو الاستخدام النموذجي للواجهة الجديدة كما يلي:

using (Presentation pres = new Presentation())
{
    IPPImage ppImage;
    // إنشاء مثيل يمكن التخلص منه من IImage من الملف على القرص.  
    using (IImage image = Images.FromFile("image.png"))
    {
        // إنشاء صورة PowerPoint عن طريق إضافة مثيل من IImage إلى صور العرض التقديمي.
        ppImage = pres.Images.AddImage(image);
    }

    // إضافة شكل صورة على الشريحة #1
    pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);

    // الحصول على مثيل من IImage يمثل الشريحة #1.
    using (var slideImage = pres.Slides[0].GetImage(new Size(1920, 1080)))
    {
        // حفظ الصورة على القرص.
        slideImage.Save("slide1.jpeg", ImageFormat.Jpeg);
    }
}

استبدال الشيفرة القديمة بواجهة برمجة التطبيقات الحديثة

لتسهيل الانتقال، تكرر واجهة IImage الجديدة التواقيع المنفصلة للفئات Image و Bitmap. بشكل عام، تحتاج فقط إلى استبدال استدعاء الطريقة القديمة المستخدمة لـ System.Drawing بالطريقة الجديدة.

الحصول على صورة مصغرة للشريحة

شيفرة تستخدم واجهة برمجة التطبيقات القديمة:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Slides[0].GetThumbnail().Save("slide1.png");
}

واجهة برمجة التطبيقات الحديثة:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Slides[0].GetImage().Save("slide1.png");
}

الحصول على صورة مصغرة لشكل

شيفرة تستخدم واجهة برمجة التطبيقات القديمة:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Slides[0].Shapes[0].GetThumbnail().Save("shape.png");
}

واجهة برمجة التطبيقات الحديثة:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Slides[0].Shapes[0].GetImage().Save("shape.png");
}

الحصول على صورة مصغرة للعرض التقديمي

شيفرة تستخدم واجهة برمجة التطبيقات القديمة:

using (Presentation pres = new Presentation("pres.pptx"))
{
    var bitmaps = pres.GetThumbnails(new RenderingOptions(), new Size(1980, 1028));
    try
    {
        for (var index = 0; index < bitmaps.Length; index++)
        {
            Bitmap thumbnail = bitmaps[index];
            thumbnail.Save($"slide{index}.png", ImageFormat.Png);
        }
    }
    finally
    {
        foreach (Bitmap bitmap in bitmaps)
        {
            bitmap.Dispose();
        }
    }
}

واجهة برمجة التطبيقات الحديثة:

using (Presentation pres = new Presentation("pres.pptx"))
{
    var images = pres.GetImages(new RenderingOptions(), new Size(1980, 1028));
    try
    {
        for (var index = 0; index < images.Length; index++)
        {
            IImage thumbnail = images[index];
            thumbnail.Save($"slide{index}.png", ImageFormat.Png);
        }
    }
    finally
    {
        foreach (IImage image in images)
        {
            image.Dispose();
        }
    }
}

إضافة صورة إلى عرض تقديمي

شيفرة تستخدم واجهة برمجة التطبيقات القديمة:

using (Presentation pres = new Presentation())
{
    IPPImage ppImage;
    using (Image image = Image.FromFile("image.png"))
    {
        ppImage = pres.Images.AddImage(image);
    }

    pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);
}

واجهة برمجة التطبيقات الحديثة:

using (Presentation pres = new Presentation())
{
    IPPImage ppImage;
    using (IImage image = Aspose.Slides.Images.FromFile("image.png"))
    {
        ppImage = pres.Images.AddImage(image);
    }

    pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, ppImage);
}

الطرق / الخصائص التي ستتم إزالتها واستبدالها في واجهة برمجة التطبيقات الحديثة

عرض تقديمي

توقيع الطريقة توقيع طريقة الاستبدال
public Bitmap[] GetThumbnails(IRenderingOptions options) GetImages(IRenderingOptions options)
public Bitmap[] GetThumbnails(IRenderingOptions options, int[] slides) GetImages(IRenderingOptions options, int[] slides)
public Bitmap[] GetThumbnails(IRenderingOptions options, float scaleX, float scaleY) GetImages(IRenderingOptions options, float scaleX, float scaleY)
public Bitmap[] GetThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) GetImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY)
public Bitmap[] GetThumbnails(IRenderingOptions options, Size imageSize) GetImages(IRenderingOptions options, Size imageSize)
public Bitmap[] GetThumbnails(IRenderingOptions options, int[] slides, Size imageSize) GetImages(IRenderingOptions options, int[] slides, Size imageSize)
public void Save(string fname, SaveFormat format, HttpResponse response, bool showInline) سيتم حذفه تمامًا
public void Save(string fname, SaveFormat format, ISaveOptions options, HttpResponse response, bool showInline) سيتم حذفه تمامًا
public void Print() سيتم حذفه تمامًا
public void Print(PrinterSettings printerSettings) سيتم حذفه تمامًا
public void Print(string printerName) سيتم حذفه تمامًا
public void Print(PrinterSettings printerSettings, string presName) سيتم حذفه تمامًا

شكل

توقيع الطريقة توقيع طريقة الاستبدال
public Bitmap GetThumbnail() GetImage
public Bitmap GetThumbnail(ShapeThumbnailBounds bounds, float scaleX, float scaleY) GetImage(ShapeThumbnailBounds bounds, float scaleX, float scaleY)

شريحة

توقيع الطريقة توقيع طريقة الاستبدال
public Bitmap GetThumbnail(float scaleX, float scaleY) GetImage(float scaleX, float scaleY)
public Bitmap GetThumbnail() GetImage
public Bitmap GetThumbnail(IRenderingOptions options) GetImage(IRenderingOptions options)
public Bitmap GetThumbnail(Size imageSize) GetImage(Size imageSize)
public Bitmap GetThumbnail(ITiffOptions options) GetImage(ITiffOptions options)
public Bitmap GetThumbnail(IRenderingOptions options, float scaleX, float scaleY) GetImage(IRenderingOptions options, float scaleX, float scaleY)
public Bitmap GetThumbnail(IRenderingOptions options, Size imageSize) GetImage(IRenderingOptions options, Size imageSize)
public void RenderToGraphics(IRenderingOptions options, Graphics graphics) سيتم حذفه تمامًا
public void RenderToGraphics(IRenderingOptions options, Graphics graphics, float scaleX, float scaleY) سيتم حذفه تمامًا
public void RenderToGraphics(IRenderingOptions options, Graphics graphics, Size renderingSize) سيتم حذفه تمامًا

مخرجات

توقيع الطريقة توقيع طريقة الاستبدال
public IOutputFile Add(string path, Image image) Add(string path, IImage image)

مجموعة الصور

توقيع الطريقة توقيع طريقة الاستبدال
IPPImage AddImage(Image image) AddImage(IImage image)

مصنع غلاف الصورة

توقيع الطريقة توقيع طريقة الاستبدال
IImageWrapper CreateImageWrapper(Image image) CreateImageWrapper(IImage image)

صورة العرض

توقيع / خاصية توقيع طريقة الاستبدال
void ReplaceImage(Image newImage) ReplaceImage(IImage newImage)
Image SystemImage { get; } IImage Image { get; }

تنسيق نمط

توقيع الطريقة توقيع طريقة الاستبدال
Bitmap GetTileImage(Color background, Color foreground) GetTile(Color background, Color foreground)
Bitmap GetTileImage(Color styleColor) GetTile(Color styleColor)

بيانات فعالة لتنسيق النمط

توقيع الطريقة توقيع طريقة الاستبدال
Bitmap GetTileImage(Color background, Color foreground) GetTileIImage(SlidesImage image)

دعم Aspose.Slides.NET6.CrossPlatform سيتم إيقافه

بعد إصدار Aspose.Slides.NET الإصدار 24.8، سيتم إيقاف دعم Aspose.Slides.NET6.CrossPlatform.

دعم واجهة برمجة التطبيقات لـ Graphics و PrinterSettings سيتم إيقافه

فئة Graphics غير مدعومة للإصدارات المتعددة المنصات من .NET6 وما فوق. في Aspose Slides، سيتم إزالة جزء من واجهة برمجة التطبيقات الذي يستخدمها: Slide

أيضًا، سيتم إزالة جزء من واجهة برمجة التطبيقات المتعلقة بالطباعة:

Presentation: