Nyílt forráskódú C# .NET Library for Images Manipulation
PNG, JPEG, GIF és TIFF képek olvasása, írása, módosítása, átméretezése és konvertálása menet közben az ingyenes .NET API-n keresztül.
Az ImageProcessor egy ingyenes, nyílt forráskódú .NET képfeldolgozó könyvtár, amely lehetővé teszi a számítógépes programozók számára, hogy menet közben módosítsák a képeket saját .NET-alkalmazásaikon belül. A könyvtár nagyon gyors, stabil, bővíthető, felhasználóbarát és nagyszerű funkciókat tartalmaz. A könyvtár teljes mértékben támogatja a JPG, JPEG, PNG, GIF, PNG8 (animált és statikus), BMP és TIFF fájlformátumokkal való munkát.
A könyvtár alapvetően két alkönyvtárra oszlik. Az első könyvtár ImageProcessor néven ismert, és teljes mértékben támogatja az asztali számítógépekkel és az alkalmazásokkal való munkát. A 2. ImageProcessor.Web könyvtár az ASP.NET számára készült, és teljes mértékben támogatja a webalkalmazásokkal való munkát. Főleg az első részről fogunk beszélni, és arról, hogy a fejlesztők hogyan használhatják azt alkalmazásaikban.
Az ImageProcessor használatának első lépései
Stabil kiadás elérhető a NuGet webhelyen. Az ImageProcessort csak a Windows operációs rendszeren futó .NET-keretrendszer támogatja, és mindig is lesz. Kérjük, ne próbálja meg .NET Core vagy NET 5+ rendszerrel használni.
Telepítse az ImageProcessort a NuGet segítségével
NuGet\Install-Package ImageProcessor -Version number
Szűrők alkalmazása a képekre a C# könyvtáron keresztül
A nyílt forráskódú ImageProcessor könyvtár lehetővé teszi a C# .NET fejlesztők számára, hogy könnyedén szűrjék a képeket saját alkalmazásaikon belül. Kérjük, használja a MatrixFilters osztályt a megfelelő szűrő hozzárendeléséhez a képekhez. Többféle szűrő áll rendelkezésre, amelyeket a képekre alkalmazhat, például BlackWhite, Comic, Gotham, GreyScale, HiSatch, Invert, Lomograph, LoSatch, Polaroid és Sepia.
Szöveg alapú vízjel hozzáadása a képhez
A nyílt forráskódú ImageProcessor könyvtár segítségével könnyedén elhelyezhet egy képet vagy szöveges vízjelet a képeken bárhol. A könyvtár teljes mértékben támogatja a vízjel hozzáadását a képekhez, mindössze néhány sornyi kóddal. A szükséges osztály tartalmazza az összes olyan tulajdonságot, amely szükséges ahhoz, hogy szöveges vízjelet adjunk a képhez. Támogatja a szöveg színét, válassza ki a betűtípust, a betűméretet, a stílust, az átlátszatlanságot, a pozíciót, a vetett árnyékot és egyebeket.
Képek kivágása .NET használatával
Az ImageProcessor lehetővé teszi a szoftverfejlesztők számára, hogy az aktuális képet egyéni helyre és méretre levágják. A vágás a legfontosabb, mégis egyszerű folyamat, amelyet figyelembe kell venni a képek és fényképek szerkesztésekor. Számos olyan tulajdonságot biztosít, amelyek segítségével a felhasználók igényeik szerint vághatják le a képeket. Például bal, felső, jobb, alsó és CropMode.
Vágja le a képeket a C# .NET használatával
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);
}
}
}
}