Open Source C# .NET Library for Images Manipulation
Läs, skriv, ändra, ändra storlek och konvertera PNG-, JPEG-, GIF- och TIFF-bilder i farten via gratis .NET API.
ImageProcessor är ett gratis .NET-bildbehandlingsbibliotek med öppen källkod som låter datorprogrammerare manipulera bilder i farten i sina egna .NET-applikationer. Biblioteket är mycket snabbt, stabilt, utbyggbart, användarvänligt och innehåller fantastiska funktioner. Biblioteket ger fullt stöd för att arbeta med filformaten JPG, JPEG, PNG, GIF, PNG8 (både animerade och statiska), BMP och TIFF.
Biblioteket är huvudsakligen uppdelat i två underbibliotek. Det första biblioteket är känt som ImageProcessor och ger fullt stöd för att arbeta med skrivbord och applikationer. Det andra biblioteket ImageProcessor.Web är byggt för ASP.NET och ger fullt stöd för att arbeta med webbapplikationer. Vi kommer främst att diskutera den första delen och hur utvecklare kan använda den i sina applikationer.
Komma igång med ImageProcessor
En stabil version är tillgänglig på NuGet. ImageProcessor stöds och kommer endast att stödjas på .NET Framework som körs på ett Windows OS. Försök inte använda med .NET Core eller NET 5+.
Installera ImageProcessor via NuGet
NuGet\Install-Package ImageProcessor -Version number
Använd filter på bilder via C# Library
ImageProcessor-biblioteket med öppen källkod tillåter C# .NET-utvecklare att enkelt filtrera bilder i sina egna applikationer. Använd klassen MatrixFilters för att tilldela rätt filter till dina bilder. Det finns flera typer av filter tillgängliga som du kan använda på dina bilder, som BlackWhite, Comic, Gotham, GreyScale, HiSatch, Invert, Lomograph, LoSatch, Polaroid och Sepia.
Lägg till textbaserad vattenstämpel till bilden
Du kan enkelt placera en bild eller textvattenstämpel var som helst på dina bilder med hjälp av ImageProcessor-biblioteket med öppen källkod. Biblioteket ger fullt stöd för att lägga till vattenstämpel till bilder med bara några rader kod. Den obligatoriska klassen innehåller alla egenskaper som krävs för att lägga till den textbaserade vattenstämpeln till bilden. Den stöder textfärg, välj teckensnitt, teckenstorlek, stil, opacitet, position, skugga och mer.
Beskär bilder med .NET
ImageProcessor ger mjukvaruutvecklare möjlighet att beskära den aktuella bilden till en anpassad plats och storlek. Beskärning är den viktigaste men ändå enkla processen att tänka på när du redigerar dina bilder och foton. Den tillhandahåller flera egenskaper som hjälper användare att beskära bilder efter deras behov. Såsom vänster, topp, höger, botten och CropMode.
Beskär bilder med 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);
}
}
}
}