1. Produkte
  2.   Bild
  3.   .NET
  4.   ImageSharp  

ImageSharp  

 
 

Open-Source-C#-.NET-Bibliothek für 2D-Grafiken

Lesen, Schreiben, Ändern, Ändern der Größe und Konvertieren von PNG-, JPEG-, GIF- und TIFF-Bildern mithilfe der .NET-API.

ImageSharp ist eine einfache, aber sehr leistungsstarke plattformübergreifende Open-Source-Bibliothek für die Verarbeitung von Bilddateien in C#-Anwendungen. Es ist eine vollständig verwaltete und plattformübergreifende 2D-Grafik-API, die entwickelt wurde, um die Verarbeitung von Bildern zu ermöglichen. ImageSharp ist eine Open-Source-Bildverarbeitungsbibliothek, die mit dem Ziel veröffentlicht wurde, eine Alternative zu den System.Drawing-APIs bereitzustellen.

Diese API ist umfassend und unterstützt fortschrittliche Algorithmen für die Bildverarbeitung. Die API wird Jahr für Jahr verbessert, um Unterstützung für eine fortschrittlichere Bildverarbeitung zu bieten. Seine einzige Abhängigkeit ist .NET selbst, was es extrem portabel macht. Die API bietet Unterstützung für erweiterte Funktionen wie Bildgrößenänderung, Bildcodierung und -decodierung, Decodierung nur von Bildmetadaten, Bildklonen, Zeichnen von Wasserzeichen auf dem Bild, Zeichnen von Text entlang eines Pfads und vieles mehr.

Previous Next

Erste Schritte mit ImageSharp

Eine stabile Version ist auf NuGet verfügbar. Stellen Sie bei Betaversionen sicher, dass der Schalter "Vorabversion einbeziehen" aktiviert ist. Entwicklungsversionen sind über MyGet verfügbar.

Install ImageSharp via NuGet

Install-Package SixLabors.ImageSharp -Version number 

C#-API zum Ändern der Bildgröße

Die ImageSharp-Bibliothek ermöglicht es C#-.NET-Programmierern, die Größe von Bildern in ihren eigenen .NET-Anwendungen zu ändern. Das Ändern der Größe eines Bildes erfordert den Prozess des Generierens und Iterierens durch die Pixel eines Zielbildes und das Abtasten von Bereichen eines Quellbildes, um auszuwählen, welche Farbe für jedes Pixel implementiert werden soll. Sie können den Algorithmus bei der Verarbeitung von Bildern einfach einstellen, z. B. Bicubic, Hermite, Box, CatmullRom, Lanczos2 und mehr. Neben den grundlegenden Größenänderungen bietet ImageSharp auch erweiterte Funktionen.

Größe der Bilder über C# API

// 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");
}                
                  

Wasserzeichen auf Bild zeichnen

Normalerweise schützen Menschen ihre Bilder, indem sie ein großes Wasserzeichen überlagern, um zu verhindern, dass Menschen die Bilder ohne Genehmigung verwenden. Die ImageSharp-Bibliothek bietet Unterstützung für das Hinzufügen von Wasserzeichen zu Bildern in C++-Anwendungen. Zu Beginn benötigen Sie eine Schriftfamilie, die Sie ganz einfach aus dem Systemfont-Store beziehen können. Zeichnen Sie den Text über das Bild und grauen Sie es mit 50% Deckkraft.

Text zeichnen Ent ein Pfad & Effekt auf Bild zeichnen

Die ImageSharp Bibliothek erlaubt es C# .NET Entwicklern, einen Text nach den Konturen eines Pfades zu zeichnen. Es wird empfohlen, eine Schriftsammlung zu erstellen. Zuerst erstellen wir den Text als eine Menge von Vektoren, die entlang des Pfades gezogen werden. Nach dem Ziehen des Pfades können wir sehen, was der Text sein soll. Die ImageSharp API erlaubt es außerdem, verschiedene Effekte nur innerhalb einer Form auf Bilder anzuwenden.

Effekt auf Bilder


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");
            }
        }
    }
}              
 Deutsch