قص الصور C#

العمل مع الصور برمجياً باستخدام C# يتيح للمطورين إجراء تعديلات مختلفة مثل تغيير الحجم، التدوير، والقص. من بين هذه المهام، القص مفيد بشكل خاص عندما تريد استخراج منطقة معينة من صورة أو إزالة الهوامش غير المرغوب فيها. في هذه الدليل، سنركز على كيفية قص الصور في C# باستخدام Conholdate.Total لـ .NET.

سوف نرشدك خلال تقنيتين مختلفتين للقص، إحداهما باستخدام قيم الإزاحة لقص الصورة من جميع الجوانب، والأخرى من خلال تحديد مستطيل مخصص لعزل جزء معين من الصورة. يحتوي كل قسم على مقتطفات كود موثقة جيدًا ورؤى عملية للتطبيقات في العالم الحقيقي.

لماذا قص الصور برمجياً في C#؟

هناك عدة سيناريوهات حيث يكون من المفيد قص الصور برمجياً:

  • ركز على المحتوى: قص الصورة يتيح لك تسليط الضوء على جزء محدد من الصورة، مما يجعله مثالياً لصور الملف الشخصي، الصور المصغرة، أو مسحات الوثائق.

  • معالجة الصور الآلية: في التطبيقات التي تتضمن تعديل الصور بشكل جماعي أو محتوى تم تحميله بواسطة المستخدم، فإن أتمتة عملية القص تُبسط سير العمل وتلغي الجهد اليدوي.

  • الامتثال والخصوصية: يمكن استخدام القص لإزالة البيانات الحساسة أو غير ذات الصلة قبل مشاركة الصور.

القص ليس مجرد تعديل جمالي، إنه جزء حاسم من معالجة البيانات وتصميم تجربة المستخدم وأداء النظام.

قص صور JPG PNG BMP - إعدادات واجهة برمجة التطبيقات .NET

يمكنك إعداد Conholdate.Total for .NET بسهولة باستخدام أمر تثبيت NuGet أدناه:

Install-Package Conholdate.Total

قص الصور عن طريق تغيير الجوانب في C#

توضح الطريقة الأولى كيفية قص صورة عن طريق نقل حدودها إلى الداخل. هذا مفيد بشكل خاص عندما ترغب في تقليم الهوامش بشكل موحد أو غير متساوٍ من الأعلى والأسفل واليسار واليمين للصورة.

// Load the image to be cropped.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Define shift values for all four sides.
    int leftShift = 10;
    int rightShift = 10;
    int topShift = 50;
    int bottomShift = 50;

    // Based on the shift values, apply the cropping on image. Crop method will shift the image bounds toward the center of image.
    rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

في هذا المثال، نقوم بتحميل صورة PNG ونحدد عدد وحدات البكسل التي نريد إزالتها من كل جانب. طريقة القص تتكيف بشكل ملائم مع أبعاد الصورة نحو الداخل، مما يلغي الحدود غير الضرورية مع الحفاظ على سلامة الصورة. باستخدام هذه الطريقة، يمكنك تحقيق قص قائم على الحواف بشكل متسق، وهو مثالي للمستندات الممسوحة ضوئيًا، والتقاط الصور من الشاشة، وحدود الصور.

قص الصور باستخدام مستطيل محدد في C#

تقدم الطريقة الثانية دقة أكبر من خلال السماح لك بتحديد المنطقة الدقيقة للحفاظ عليها باستخدام حدود مستطيلة. تعتبر هذه الطريقة مثالية عندما تعرف الإحداثيات وحجم المنطقة المطلوبة داخل الصورة.

// Load the image.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Create an instance of Rectangle class with desired size and crop the image.
    Rectangle rectangle = new Rectangle(20, 20, 20, 20);
    rasterImage.Crop(rectangle);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

تعتبر هذه الطريقة مفيدة بشكل خاص عندما تحتاج إلى عزل جزء معين من الصورة، مثل منطقة المنتج في صورة التجارة الإلكترونية، أو كتلة نصية من مستند ممسوح ضوئيًا، أو منطقة ذات اهتمام في رسم بياني. إن تعريف وتطبيق مثل هذا المستطيل هو أمر بديهي وفعال للغاية.

رخصة تقييم مجانية

يمكنك الحصول على رخصة مؤقتة مجانية لتقييم العديد من الميزات الأخرى التي تقدمها واجهة برمجة التطبيقات بالكامل.

استنتاج

لا يجب أن تكون عملية قص الصور في C# معقدة. سواء كنت بحاجة إلى تقليم الحواف أو استخراج منطقة محددة، يمكنك إنجاز المهمة بسرعة وبدقة. مع دعم لكل من القص بناءً على التحويل والقص بناءً على المستطيلات، لديك المرونة للتعامل مع مجموعة واسعة من حالات الاستخدام في العالم الحقيقي، من تصوير المستندات إلى تخصيص المحتوى.

من خلال دمج هذه القدرات في تطبيقات .NET الخاصة بك، يمكنك أتمتة مهام تحرير الصور، وتعزيز تجربة المستخدم، والحفاظ على تنسيق متسق عبر مجموعات البيانات الكبيرة.

انظر أيضًا