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, работещ на Windows OS. Моля, не се опитвайте да използвате с .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);
            }
        }
    }
}            
 Български