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

ImageSharp  

 
 

Biblioteka Open Source C# .NET dla grafiki 2D

Czytaj, zapisuj, modyfikuj, zmieniaj rozmiar i konwertuj obrazy PNG, JPEG, GIF i TIFF za pomocą .NET API.

ImageSharp to prosta, ale bardzo wydajna, wieloplatformowa biblioteka open source do przetwarzania plików graficznych w aplikacjach C#. Jest to w pełni zarządzany i wieloplatformowy interfejs API grafiki 2D, zaprojektowany w celu umożliwienia przetwarzania obrazów. ImageSharp to biblioteka przetwarzania obrazów typu open source, która została wydana w celu zapewnienia alternatywy dla interfejsów API System.Drawing.

Ten interfejs API jest wszechstronny i obsługuje zaawansowane algorytmy przetwarzania obrazu. Interfejs API jest z roku na rok ulepszany, aby zapewnić obsługę bardziej zaawansowanego przetwarzania obrazu. Jego jedyną zależnością jest sam .NET, co czyni go niezwykle przenośnym. Interfejs API zawiera obsługę zaawansowanych funkcji, takich jak zmiana rozmiaru obrazu, kodowanie i dekodowanie obrazu, dekodowanie tylko metadanych obrazu, klonowanie obrazu, rysowanie znaku wodnego na obrazie, rysowanie tekstu wzdłuż ścieżki i wiele innych.

Previous Next

Pierwsze kroki z ImageSharp

Wersja stabilna jest dostępna na NuGet W przypadku wersji beta upewnij się, że przełącznik Uwzględnij wersję wstępną jest włączony. Wersje rozwojowe są dostępne za pośrednictwem MyGet.

Zainstaluj ImageSharp za pośrednictwem NuGet

Install-Package SixLabors.ImageSharp -Version number 

C# API do zmiany rozmiaru obrazów

Biblioteka ImageSharp umożliwia programistom C# .NET zmianę rozmiaru obrazów w ich własnych aplikacjach .NET. Zmiana rozmiaru obrazu wymaga procesu generowania i iteracji pikseli obrazu docelowego oraz obszarów próbkowania obrazu źródłowego w celu wybrania koloru do zaimplementowania dla każdego piksela. Możesz łatwo ustawić algorytm podczas przetwarzania obrazów, takich jak Bicubic, Hermite, Box, CatmullRom, Lanczos2 i inne. Oprócz podstawowych operacji zmiany rozmiaru, ImageSharp oferuje również bardziej zaawansowane funkcje.

Zmień rozmiar obrazów za pomocą interfejsu API C#

// Load File 
using (Image image = Image.Load("fileformat.jpg"))
{
  // Resize file 
  image.Mutate(x => x
      .Resize(image.Width / 2, image.Height / 2)
      .greyscale());
  // Save
  image.Save("fileformat_out.jpg");
}                
                  

Narysuj znak wodny na obrazie

Zwykle ludzie chronią swoje obrazy, nakładając duży znak wodny, aby uniemożliwić innym korzystanie z obrazów bez autoryzacji. Biblioteka ImageSharp zapewnia obsługę dodawania znaków wodnych do obrazów w aplikacjach C++. Aby rozpocząć, potrzebujesz rodziny czcionek i możesz ją łatwo pobrać z systemowego sklepu z czcionkami. Narysuj tekst nad obrazem i wyszarzaj go z kryciem 50%.

Narysuj tekst wzdłuż ścieżki i zastosuj efekt do obrazu

Biblioteka ImageSharp umożliwia programistom C# .NET rysowanie tekstu zgodnie z konturami ścieżki. Zaleca się stworzenie kolekcji czcionek. Najpierw wygenerujmy tekst jako zestaw wektorów narysowanych wzdłuż ścieżki. Po narysowaniu ścieżki możemy zobaczyć, czym ma podążać tekst. Interfejs API ImageSharp pozwala również na stosowanie różnego rodzaju efektów do obrazów tylko wewnątrz kształtu.

Zastosuj efekt do obrazów


namespace CustomImageProcessor
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.IO.Directory.CreateDirectory("output");
            using (Image image = Image.Load("fb.jpg"))
            {
                var outerRadii = Math.Min(image.Width, image.Height) / 2;
                var star = new Star(new PointF(image.Width / 2, image.Height / 2), 5, outerRadii / 2, outerRadii);
                using (var clone = image.Clone(p =>
                {
                    p.GaussianBlur(15); // apply the effect here you and inside the shape
                }))
                {
                    clone.Mutate(x => x.Crop((Rectangle)star.Bounds));
                    var brush = new ImageBrush(clone);
                    // cloned image with the effects applied
                    image.Mutate(c => c.Fill(brush, star));
                }
                image.Save("output/fb.png");
            }
        }
    }
}              
 Polski