مكتبة مفتوحة المصدر C # .NET لمعالجة الصور
قراءة وكتابة وتعديل وتغيير حجم وتحويل صور PNG و JPEG و GIF و TIFF أثناء التنقل عبر واجهة برمجة تطبيقات .NET مجانية.
ImageProcessor هي مكتبة معالجة صور .NET مفتوحة المصدر مجانية تسمح لمبرمجي الكمبيوتر بمعالجة الصور أثناء التنقل داخل تطبيقات .NET الخاصة بهم. المكتبة سريعة جدًا ومستقرة وقابلة للتوسيع وسهلة الاستخدام وتحتوي على ميزات رائعة. توفر المكتبة الدعم الكامل للعمل مع تنسيقات ملفات JPG و JPEG و PNG و GIF و PNG8 (متحركة وثابتة) و BMP و TIFF.
تنقسم المكتبة بشكل أساسي إلى مكتبتين فرعيتين. تُعرف المكتبة الأولى باسم ImageProcessor وتوفر الدعم الكامل للعمل مع سطح المكتب والتطبيقات. المكتبة الثانية ImageProcessor.Web مبنية لـ ASP.NET وتوفر الدعم الكامل للعمل مع تطبيقات الويب. سنناقش بشكل أساسي الجزء الأول وكيف يمكن للمطورين استخدامه داخل تطبيقاتهم.
الشروع في العمل مع ImageProcessor
يتوفر إصدار مستقر على NuGet . ImageProcessor هو ولن يتم دعمه إلا على .NET Framework الذي يعمل على نظام تشغيل Windows. يرجى عدم محاولة الاستخدام مع NET Core أو NET 5+.
قم بتثبيت ImageProcessor عبر NuGet
NuGet\Install-Package ImageProcessor -Version number
تطبيق المرشحات على الصور عبر مكتبة C #
تسمح مكتبة ImageProcessor مفتوحة المصدر لـ C # .NET للمطورين بتصفية الصور بسهولة داخل تطبيقاتهم الخاصة. يرجى استخدام فئة MatrixFilters لتعيين المرشح الصحيح لصورك. هناك عدة أنواع من المرشحات المتاحة التي يمكنك تطبيقها على صورك ، مثل BlackWhite و Comic و Gotham و GreyScale و HiSatch و Invert و Lomograph و LoSatch و Polaroid و Sepia.
أضف علامة مائية تستند إلى النص إلى الصورة
يمكنك بسهولة وضع صورة أو علامة مائية نصية في أي مكان على صورك باستخدام مكتبة ImageProcessor مفتوحة المصدر. توفر المكتبة الدعم الكامل لإضافة علامة مائية إلى الصور ببضعة أسطر من التعليمات البرمجية. تحتوي الفئة المطلوبة على جميع الخصائص اللازمة لإضافة العلامة المائية القائمة على النص إلى الصورة. يدعم لون النص ، حدد الخط ، حجم الخط ، النمط ، التعتيم ، الموضع ، الظل المسقط والمزيد.
اقتصاص الصور باستخدام .NET
يمنح ImageProcessor مطوري البرامج القدرة على اقتصاص الصورة الحالية إلى موقع وحجم مخصصين. يعد الاقتصاص أهم عملية يسهل مراعاتها عند تحرير صورك وصورك. يوفر العديد من الخصائص التي تساعد المستخدمين على قص الصور وفقًا لاحتياجاتهم. مثل اليسار ، أعلى ، يمين ، أسفل و CropMode.
اقتصاص الصور باستخدام C # .NET
namespace ImageProcessor.Tests.Processing
{
public class CropTests
{
private const string category = "Crop";
[Fact]
public void CropSettingsConstructorSetsOptions()
{
const int Left = 1;
const int Top = 1;
const int Right = 1;
const int Bottom = 1;
var expected = new CropOptions(Left, Top, Right, Bottom, CropMode.Percentage);
Assert.Equal(expected.Left, Left);
Assert.Equal(expected.Top, Top);
Assert.Equal(expected.Right, Right);
Assert.Equal(expected.Bottom, Bottom);
}
[Fact]
public void CropSettingsConstructorChecksInput()
{
Assert.Throws(() => new CropOptions(-1, 0, 0, 0));
Assert.Throws(() => new CropOptions(0, -1, 0, 0));
Assert.Throws(() => new CropOptions(0, 0, -1, 0));
Assert.Throws(() => new CropOptions(0, 0, 0, -1));
}
[Fact]
public void CropConstructorSetsOptions()
{
var expected = new CropOptions(1, 2, 3, 4, CropMode.Percentage);
var processor = new Crop(expected);
Assert.Equal(expected, processor.Options);
}
[Fact]
public void FactoryCanCropRectangle()
{
// Test our issue crop.
TestFile file = TestFiles.Jpeg.EXIFCropIssue559;
var bounds = new Rectangle(939, 439, 2778, 2778);
using (var factory = new ImageFactory())
{
factory.Load(file.FullName)
.Crop(bounds)
.SaveAndCompare(file, category, bounds);
}
}
[Fact]
public void FactoryCanCropPercentile()
{
// Test our issue crop.
TestFile file = TestFiles.Jpeg.Penguins;
var settings = new CropOptions(15, 25, 10, 5, CropMode.Percentage);
using (var factory = new ImageFactory())
{
factory.Load(file.FullName)
.Crop(settings)
.SaveAndCompare(file, category, settings);
}
}
}
}