ImageSharp
Open Source C# .NET-bibliotheek voor 2D-graphics
Lezen, schrijven, wijzigen, formaat wijzigen en converteren van PNG-, JPEG-, GIF- en TIFF-afbeeldingen met behulp van .NET API.
ImageSharp is een eenvoudige maar zeer krachtige platformonafhankelijke open source-bibliotheek voor de verwerking van afbeeldingsbestanden in C#-toepassingen. Het is een volledig beheerde en platformonafhankelijke 2D grafische API die is ontworpen om de verwerking van afbeeldingen mogelijk te maken. ImageSharp is een open source beeldverwerkingsbibliotheek die is uitgebracht met als doel een alternatief te bieden voor de System.Drawing API's.
Deze API is uitgebreid en ondersteunt geavanceerde algoritmen voor beeldverwerking. De API wordt jaar na jaar verbeterd om ondersteuning te bieden voor meer geavanceerde beeldverwerking. De enige afhankelijkheid is .NET zelf, waardoor het extreem draagbaar is. De API biedt ondersteuning voor geavanceerde functies zoals het vergroten of verkleinen van afbeeldingen, het coderen en decoderen van afbeeldingen, het decoderen van alleen metadata van afbeeldingen, het klonen van afbeeldingen, het tekenen van een watermerk op de afbeelding, het tekenen van tekst langs een pad en nog veel meer.
Aan de slag met ImageSharp
Een stabiele release is beschikbaar op NuGet Zorg er voor bètaversies voor dat de schakelaar Inclusief prerelease is ingeschakeld. Ontwikkelingsreleases zijn beschikbaar via MyGet.
Installeer ImageSharp via NuGet
Install-Package SixLabors.ImageSharp -Version number
C# API om het formaat van afbeeldingen te wijzigen
Met de ImageSharp-bibliotheek kunnen C# .NET-programmeurs het formaat van afbeeldingen in hun eigen .NET-toepassingen wijzigen. Het vergroten of verkleinen van een afbeelding vereist het proces van het genereren en herhalen door de pixels van een doelafbeelding en bemonsteringsgebieden van een bronafbeelding om te kiezen welke kleur voor elke pixel moet worden geïmplementeerd. U kunt het algoritme eenvoudig instellen bij het verwerken van afbeeldingen, zoals Bicubisch, Hermite, Box, CatmullRom, Lanczos2 en meer. Afgezien van de basisbewerkingen voor het wijzigen van het formaat, biedt ImageSharp ook meer geavanceerde functies.
Formaat van afbeeldingen wijzigen via 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");
}
Watermerk tekenen op afbeelding
Gewoonlijk beschermen mensen hun afbeeldingen door er een groot watermerk overheen te leggen om te voorkomen dat mensen de afbeeldingen zonder toestemming gebruiken. De ImageSharp-bibliotheek biedt ondersteuning voor het toevoegen van watermerken aan afbeeldingen in C++-toepassingen. Om te beginnen heb je een lettertypefamilie nodig en je kunt er gemakkelijk een krijgen uit de systeemlettertypewinkel. De tekst over de afbeelding getekend en grijs gemaakt met een dekking van 50%.
Teken tekst langs een pad en pas effect toe op afbeelding
Met de ImageSharp-bibliotheek kunnen C# .NET-ontwikkelaars tekst tekenen volgens de contouren van een pad. Het wordt aanbevolen om een lettertypeverzameling aan te maken. Laten we eerst de tekst genereren als een set vectoren die langs het pad zijn getekend. Nadat we het pad hebben getekend, kunnen we zien wat de tekst zou moeten volgen. De ImageSharp API maakt het ook mogelijk om verschillende soorten effecten toe te passen op afbeeldingen die alleen binnen een vorm zijn.
Effect toepassen op afbeeldingen
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");
}
}
}
}