1. Produkty
  2.   Obraz
  3.   .NET
  4.   ImageProcessor  
 
  

Biblioteka Open Source C# .NET do manipulacji obrazami

Czytaj, zapisuj, modyfikuj, zmieniaj rozmiar i konwertuj obrazy PNG, JPEG, GIF i TIFF w locie za pośrednictwem bezpłatnego interfejsu API .NET.

ImageProcessor to bezpłatna biblioteka do przetwarzania obrazów .NET o otwartym kodzie źródłowym, która umożliwia programistom manipulowanie obrazami w locie we własnych aplikacjach .NET. Biblioteka jest bardzo szybka, stabilna, rozszerzalna, przyjazna dla użytkownika i zawiera świetne funkcje. Biblioteka zapewnia pełne wsparcie dla pracy z formatami JPG, JPEG, PNG, GIF, PNG8 (zarówno animowane, jak i statyczne), BMP i TIFF.

Biblioteka jest podzielona głównie na dwie podbiblioteki. Pierwsza biblioteka znana jest jako ImageProcessor i zapewnia pełne wsparcie dla pracy z pulpitem i aplikacjami. Druga biblioteka ImageProcessor.Web jest stworzona dla ASP.NET i zapewnia pełną obsługę pracy z aplikacjami internetowymi. Będziemy głównie dyskutować o pierwszej części i o tym, jak programiści mogą ją wykorzystać w swoich aplikacjach.

Previous Next

Pierwsze kroki z ImageProcessor

Wersja stabilna jest dostępna na NuGet. ImageProcessor jest i będzie obsługiwany tylko w .NET Framework działającym w systemie operacyjnym Windows. Nie próbuj używać z .NET Core lub NET 5+.

Zainstaluj ImageProcessor za pośrednictwem NuGet

NuGet\Install-Package ImageProcessor -Version number 

Zastosuj filtry do obrazów za pośrednictwem biblioteki C#

Biblioteka ImageProcessor o otwartym kodzie źródłowym umożliwia programistom C# .NET łatwe filtrowanie obrazów w ich własnych aplikacjach. Użyj klasy MatrixFilters, aby przypisać odpowiedni filtr do swoich obrazów. Dostępnych jest kilka typów filtrów, które można zastosować do obrazów, takich jak BlackWhite, Comic, Gotham, GreyScale, HiSatch, Invert, Lomograph, LoSatch, Polaroid i Sepia.

Dodaj tekstowy znak wodny do obrazu

Możesz łatwo umieścić obraz lub tekstowy znak wodny w dowolnym miejscu na obrazach, korzystając z biblioteki ImageProcessor o otwartym kodzie źródłowym. Biblioteka zapewnia pełną obsługę dodawania znaku wodnego do obrazów za pomocą zaledwie kilku linijek kodu. Wymagana klasa zawiera wszystkie właściwości niezbędne do dodania tekstowego znaku wodnego do obrazu. Obsługuje kolor tekstu, wybierz czcionkę, rozmiar czcionki, styl, krycie, pozycję, cień i inne.

Przycinaj obrazy za pomocą platformy .NET

ImageProcessor daje programistom możliwość przycięcia bieżącego obrazu do niestandardowej lokalizacji i rozmiaru. Kadrowanie to najważniejszy, ale łatwy proces, który należy wziąć pod uwagę podczas edycji obrazów i zdjęć. Zapewnia kilka właściwości, które pomagają użytkownikom przycinać obrazy zgodnie z ich potrzebami. Takich jak lewy, górny, prawy, dolny i CropMode.

Przycinaj obrazy za pomocą 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);
            }
        }
    }
}            
 Polski