1. محصولات
  2.   تصویر
  3.   .NET
  4.   ImageProcessor  
 
  

کتابخانه منبع باز C#.NET برای دستکاری تصاویر

خواندن، نوشتن، تغییر، تغییر اندازه و تبدیل تصاویر PNG، JPEG، GIF و TIFF در لحظه از طریق .NET API رایگان.

ImageProcessor یک کتابخانه پردازش تصویر .NET منبع باز رایگان است که به برنامه نویسان رایانه اجازه می دهد تا تصاویر را در لحظه در برنامه های NET خود دستکاری کنند. این کتابخانه بسیار سریع، پایدار، قابل توسعه، کاربر پسند است و دارای ویژگی های عالی است. این کتابخانه برای کار با فرمت های فایل های JPG، JPEG، PNG، GIF، PNG8 (هم متحرک و هم ثابت)، BMP و TIFF پشتیبانی کامل می کند.

این کتابخانه عمدتاً به دو زیر مجموعه تقسیم می شود. اولین کتابخانه با نام ImageProcessor شناخته می شود و پشتیبانی کاملی را برای کار با دسکتاپ و برنامه ها ارائه می دهد. دومین کتابخانه ImageProcessor.Web برای ASP.NET ساخته شده است و از کار با برنامه های وب پشتیبانی کامل می کند. ما عمدتاً در مورد قسمت اول بحث خواهیم کرد و اینکه توسعه دهندگان چگونه می توانند از آن در برنامه های خود استفاده کنند.

Previous Next

شروع کار با ImageProcessor

نسخه پایدار در NuGet موجود است. ImageProcessor تنها در .NET Framework که بر روی سیستم عامل ویندوز اجرا می شود پشتیبانی می شود و همیشه پشتیبانی می شود. لطفاً سعی نکنید با .NET Core یا NET 5+ استفاده کنید.

ImageProcessor را از طریق NuGet نصب کنید

NuGet\Install-Package ImageProcessor -Version number 

اعمال فیلترها به تصاویر از طریق کتابخانه سی شارپ

کتابخانه منبع باز ImageProcessor به توسعه دهندگان C#.NET اجازه می دهد تا تصاویر را به راحتی در برنامه های خود فیلتر کنند. لطفاً از کلاس MatrixFilters برای اختصاص فیلتر صحیح به تصاویر خود استفاده کنید. انواع مختلفی از فیلترها وجود دارد که می توانید روی تصاویر خود اعمال کنید، مانند BlackWhite، Comic، Gotham، GreyScale، HiSatch، Invert، Lomograph، LoSatch، Polaroid و Sepia.

اضافه کردن واترمارک مبتنی بر متن به تصویر

با استفاده از کتابخانه منبع باز ImageProcessor می توانید به راحتی یک تصویر یا واترمارک متنی را در هر نقطه از تصاویر خود قرار دهید. این کتابخانه از افزودن واترمارک به تصاویر تنها با چند خط کد پشتیبانی کامل می کند. کلاس مورد نیاز شامل تمام خصوصیات لازم برای افزودن واترمارک متنی به تصویر است. از رنگ متن پشتیبانی می کند، فونت، اندازه قلم، سبک، کدورت، موقعیت، سایه و موارد دیگر را انتخاب کنید.

برش تصاویر با استفاده از دات نت

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);
            }
        }
    }
}            
 فارسی