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. Будь ласка, не намагайтеся використовувати з .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);
            }
        }
    }
}            
 Українська