ImageSharp
Βιβλιοθήκη ανοιχτού κώδικα C# .NET για γραφικά 2D
Ανάγνωση, εγγραφή, τροποποίηση, αλλαγή μεγέθους και μετατροπή εικόνων PNG, JPEG, GIF & TIFF χρησιμοποιώντας .NET API.
Το ImageSharp είναι μια απλή αλλά πολύ ισχυρή βιβλιοθήκη ανοιχτού κώδικα πολλαπλών πλατφορμών για την επεξεργασία αρχείων εικόνας μέσα σε εφαρμογές C#. Είναι ένα πλήρως διαχειριζόμενο και διαπλατφορμικό API γραφικών 2D που έχει σχεδιαστεί για να επιτρέπει την επεξεργασία εικόνων. Το ImageSharp είναι μια βιβλιοθήκη επεξεργασίας εικόνας ανοιχτού κώδικα που κυκλοφόρησε με στόχο να παρέχει μια εναλλακτική λύση στα API System.Drawing.
Αυτό το API είναι ολοκληρωμένο και υποστηρίζει προηγμένους αλγόριθμους για την επεξεργασία εικόνας. Το API βελτιώνεται χρόνο με το χρόνο για να παρέχει υποστήριξη για πιο προηγμένη επεξεργασία εικόνας. Η μόνη εξάρτησή του είναι το ίδιο το .NET, γεγονός που το καθιστά εξαιρετικά φορητό. Το API περιλαμβάνει υποστήριξη για προηγμένες λειτουργίες όπως αλλαγή μεγέθους εικόνας, κωδικοποίηση και αποκωδικοποίηση εικόνας, αποκωδικοποίηση μόνο μεταδεδομένων εικόνας, κλωνοποίηση εικόνας, Σχεδίαση υδατογραφήματος στην εικόνα, Σχεδίαση κειμένου κατά μήκος μιας διαδρομής και πολλά άλλα.
Ξεκινώντας με το ImageSharp
Μια σταθερή έκδοση είναι διαθέσιμη στο NuGet Για εκδόσεις beta, βεβαιωθείτε ότι είναι ενεργοποιημένος ο διακόπτης Include Prerelease. Οι εκδόσεις ανάπτυξης είναι διαθέσιμες μέσω του MyGet.
Εγκαταστήστε το ImageSharp μέσω του NuGet
Install-Package SixLabors.ImageSharp -Version number
C# API για αλλαγή μεγέθους εικόνων
Η βιβλιοθήκη ImageSharp επιτρέπει στους προγραμματιστές C# .NET να αλλάζουν μέγεθος εικόνων μέσα στις δικές τους εφαρμογές .NET. Η αλλαγή μεγέθους μιας εικόνας απαιτεί τη διαδικασία δημιουργίας και επανάληψης μέσω των εικονοστοιχείων μιας εικόνας στόχου και δειγματοληψίας περιοχών μιας εικόνας προέλευσης για να επιλέξετε το χρώμα που θα εφαρμοστεί για κάθε pixel. Μπορείτε εύκολα να ορίσετε τον αλγόριθμο κατά την επεξεργασία εικόνων, όπως Bicubic, Hermite, Box, CatmullRom, Lanczos2 και άλλα. Εκτός από τις βασικές λειτουργίες αλλαγής μεγέθους, το ImageSharp προσφέρει επίσης πιο προηγμένες λειτουργίες.
Φωτογραφίες από 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");
}
Σχεδιάστε το υδατογράφημα στην εικόνα
Συνήθως, οι άνθρωποι προστατεύουν τις εικόνες τους βάζοντας ένα μεγάλο υδατογράφημα με επικάλυψη για να αποτρέψουν τα άτομα από τη χρήση των εικόνων χωρίς εξουσιοδότηση. Η βιβλιοθήκη ImageSharp παρέχει υποστήριξη για την προσθήκη υδατογραφημάτων σε εικόνες εντός εφαρμογών C++. Για να ξεκινήσετε, χρειάζεστε μια οικογένεια γραμματοσειρών και μπορείτε εύκολα να την αποκτήσετε από το σύστημα αποθήκευσης γραμματοσειρών. Σχεδιάστε το κείμενο πάνω από την εικόνα και γκρι το με αδιαφάνεια 50%.
Σχεδιάστε το κείμενο σε μια διαδρομή και εφαρμόστε την επίδραση στην εικόνα
Η ImageSharp βιβλιοθήκη επιτρέπει στους προγραμματιστές C.NET να σχεδιάσουν κάποιο κείμενο ακολουθώντας τα περιγράμματα μιας διαδρομής. Συνιστάται να δημιουργήσετε μια συλλογή γραμματοσειρών. Πρώτον, ας δημιουργήσουμε το κείμενο ως ένα σύνολο διανυσμάτων που σχεδιάζονται κατά μήκος της διαδρομής. Αφού χαράξουμε το μονοπάτι, μπορούμε να δούμε τι πρέπει να ακολουθήσει το κείμενο. Το ImageSharp API επιτρέπει επίσης την εφαρμογή διαφόρων τύπων εφέ σε εικόνες μόνο μέσα σε ένα σχήμα.
Εφαρμογή στις εικόνες
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");
}
}
}
}