Open Source C.NET Βιβλιοθήκη διαχείρισης εικόνων
Διαβάστε, Γράψτε, Τροποποιήστε, Επαναλάβετε & Μετατρέψτε NG, JPEG, GIF & TIFF Εικόνες on-the-Fly μέσω Δωρεάν .NET API.
Το ImageProcessor είναι μια δωρεάν βιβλιοθήκη επεξεργασίας εικόνων .NET που επιτρέπει στους προγραμματιστές υπολογιστών να χειρίζονται εικόνες στο εσωτερικό των δικών τους εφαρμογών .NET. Η βιβλιοθήκη είναι πολύ γρήγορη, σταθερή, εκτεταμένη, φιλική προς το χρήστη και περιέχει σπουδαία χαρακτηριστικά. Η βιβλιοθήκη παρέχει πλήρη υποστήριξη για τη συνεργασία με JPG, JPEG, NG, GIF, NG8 (και τα δύο κινούμενα και στατικά), BMP και TIFF μορφές αρχείων.
Η βιβλιοθήκη χωρίζεται κυρίως σε δύο δευτερεύουσες βιβλιοθήκες. Η πρώτη βιβλιοθήκη είναι γνωστή ως ImageProcessor και παρέχει πλήρη υποστήριξη για την εργασία με επιφάνεια εργασίας και εφαρμογές. Η 2η βιβλιοθήκη ImageProcessor.Web είναι κατασκευασμένη για την SP.NET και παρέχει πλήρη υποστήριξη για τη συνεργασία με διαδικτυακές εφαρμογές. Θα συζητήσουμε κυρίως για το πρώτο μέρος και πώς μπορούν οι προγραμματιστές να το χρησιμοποιήσουν στις εφαρμογές τους.
Ξεκίνησε με ImageProcessor
Μια σταθερή έκδοση είναι διαθέσιμη στο NuGet. Το ImageProcessor υποστηρίζεται και θα υποστηρίζεται μόνο στο .NET Framework που εκτελείται σε λειτουργικό σύστημα Windows. Μην επιχειρήσετε να το χρησιμοποιήσετε με .NET Core ή NET 5+.
Εγκατάσταση ImageProcessor μέσω NuGet
NuGet\Install-Package ImageProcessor -Version number
Εφαρμογή φίλτρων σε εικόνες μέσω βιβλιοθήκης C
Η βιβλιοθήκη ανοιχτού κώδικα ImageProcessor επιτρέπει στον προγραμματιστή C.NET να φιλτράρει τις εικόνες με ευκολία μέσα στις δικές τους εφαρμογές. Χρησιμοποιήστε την κατηγορία MatrixFilters για να αντιστοιχίσετε το σωστό φίλτρο στις εικόνες σας. Υπάρχουν διάφοροι τύποι φίλτρων που μπορείτε να εφαρμόσετε στις εικόνες σας, όπως BlackWhite, Comic, Gotham, GreyScale, HiSatch, Invert, Monograph, LoSatch, Polaroid και Seria.
Προσθέστε υδατογράφημα με βάση το κείμενο στην εικόνα
Μπορείτε εύκολα να τοποθετήσετε μια εικόνα ή ένα υδατογράφημα κειμένου οπουδήποτε στις εικόνες σας χρησιμοποιώντας τη βιβλιοθήκη ανοικτού κώδικα. Η βιβλιοθήκη παρέχει πλήρη υποστήριξη για την προσθήκη υδατογραφήματος σε εικόνες με λίγες γραμμές κώδικα. Η απαιτούμενη κατηγορία περιέχει όλες τις ιδιότητες που είναι απαραίτητες για την προσθήκη του υδατογραφήματος με βάση το κείμενο στην εικόνα. Υποστηρίζει το χρώμα κειμένου, επιλέξτε Font, Font Size, Style, αδιαφάνεια, θέση, drop-shadow και πολλά άλλα.
Φωτογραφίες χρησιμοποιώντας .NET
Το ImageProcessor δίνει στους προγραμματιστές τη δυνατότητα να καλλιεργήσουν την τρέχουσα εικόνα σε μια προσαρμοσμένη τοποθεσία και μέγεθος. Η αποσύνδεση είναι η πιο σημαντική αλλά εύκολη διαδικασία που πρέπει να εξετάσετε κατά την επεξεργασία των εικόνων και των φωτογραφιών σας. Παρέχει διάφορες ιδιότητες που βοηθούν τους χρήστες να καλλιεργούν εικόνες σύμφωνα με τις ανάγκες τους. Αριστερά, πάνω, δεξιά, κάτω και CropMode.
Φωτογραφίες 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);
}
}
}
}