Atvērtā pirmkoda C# .NET bibliotēka attēlu manipulēšanai
Lasiet, rakstiet, modificējiet, mainiet izmērus un konvertējiet PNG, JPEG, GIF un TIFF attēlus lidojumā, izmantojot bezmaksas .NET API.
ImageProcessor ir bezmaksas atvērtā pirmkoda .NET attēlu apstrādes bibliotēka, kas ļauj datorprogrammētājiem lidojumā manipulēt ar attēliem savās .NET lietojumprogrammās. Bibliotēka ir ļoti ātra, stabila, paplašināma, lietotājam draudzīga un satur lieliskas iespējas. Bibliotēka nodrošina pilnu atbalstu darbam ar JPG, JPEG, PNG, GIF, PNG8 (gan animētiem, gan statiskiem), BMP un TIFF failu formātiem.
Bibliotēka galvenokārt ir sadalīta divās apakšbibliotēkās. Pirmā bibliotēka ir pazīstama kā ImageProcessor, un tā nodrošina pilnu atbalstu darbam ar darbvirsmu un lietojumprogrammām. 2. bibliotēka ImageProcessor.Web ir paredzēta ASP.NET un nodrošina pilnu atbalstu darbam ar tīmekļa lietojumprogrammām. Mēs galvenokārt apspriedīsim pirmo daļu un to, kā izstrādātāji to var izmantot savās lietojumprogrammās.
Darba sākšana ar ImageProcessor
Stabils laidiens ir pieejams vietnē NuGet. ImageProcessor ir un vienmēr tiks atbalstīts tikai .NET Framework, kas darbojas operētājsistēmā Windows. Lūdzu, nemēģiniet izmantot ar .NET Core vai NET 5+.
Instalējiet ImageProcessor, izmantojot NuGet
NuGet\Install-Package ImageProcessor -Version number
Lietojiet filtrus attēliem, izmantojot C# bibliotēku
Atvērtā pirmkoda ImageProcessor bibliotēka ļauj C#.NET izstrādātājiem viegli filtrēt attēlus savās lietojumprogrammās. Lūdzu, izmantojiet MatrixFilters klasi, lai piešķirtu saviem attēliem pareizo filtru. Ir pieejami vairāku veidu filtri, kurus varat lietot saviem attēliem, piemēram, BlackWhite, Comic, Gotham, GreyScale, HiSatch, Invert, Lomograph, LoSatch, Polaroid un Sepia.
Pievienojiet attēlam teksta ūdenszīmi
Izmantojot atvērtā koda ImageProcessor bibliotēku, jebkurā vietā uz attēliem varat viegli ievietot attēlu vai teksta ūdenszīmi. Bibliotēka nodrošina pilnīgu atbalstu ūdenszīmes pievienošanai attēliem, izmantojot tikai dažas koda rindiņas. Nepieciešamajā klasē ir visi rekvizīti, kas nepieciešami teksta ūdenszīmes pievienošanai attēlam. Tā atbalsta teksta krāsu, atlasiet fontu, fonta lielumu, stilu, necaurredzamību, pozīciju, ēnu un daudz ko citu.
Apgriezt attēlus, izmantojot .NET
ImageProcessor sniedz programmatūras izstrādātājiem iespēju apgriezt pašreizējo attēlu pielāgotā vietā un izmērā. Apgriešana ir vissvarīgākais, taču vienkāršākais process, kas jāņem vērā, rediģējot attēlus un fotoattēlus. Tas nodrošina vairākus rekvizītus, kas palīdz lietotājiem apgriezt attēlus atbilstoši viņu vajadzībām. Piemēram, pa kreisi, augšā, pa labi, apakšā un CropMode.
Apgrieziet attēlus, izmantojot 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);
}
}
}
}