Open Source Go Library για Δημιουργία και χειραγώγηση εικόνας
Ισχυρό Go API που υποστηρίζει Αλλαγή μεγέθους, Περικοπή & Περιστροφή εικόνων JPEG, PNG, GIF, TIFF και BMP. Μπορείτε επίσης να ρυθμίσετε τη φωτεινότητα της εικόνας, την αντίθεση, τη διόρθωση γάμμα των εικόνων.
Το ανοιχτού κώδικα Go Imaging API είναι ένα πολύ ισχυρό πακέτο που παρέχει πλήρη λειτουργικότητα που σχετίζεται με τη δημιουργία και τον χειρισμό εικόνων. Η βιβλιοθήκη είναι πολύ ευέλικτη και επιτρέπει στους προγραμματιστές να δημιουργούν εύκολα νέες εικόνες και να τροποποιούν τις υπάρχουσες με λίγες μόνο γραμμές κώδικα.
Η Imaging είναι μια καθαρή βιβλιοθήκη Go που είναι μικρή σε μέγεθος και αποτελεσματική σε λειτουργικότητα. Περιλαμβάνει υποστήριξη για πολλές σημαντικές μορφές αρχείων εικόνας όπως JPEG, PNG, GIF, TIFF, BMP και πολλά άλλα. Η βιβλιοθήκη έχει επίσης συμπεριλάβει πολλά φίλτρα επαναδειγματοληψίας για αλλαγή μεγέθους εικόνας. Μερικά σημαντικά φίλτρα είναι τα NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box και ούτω καθεξής. Η βιβλιοθήκη έχει επίσης διευκολύνει τους προγραμματιστές να δημιουργήσουν προσαρμοσμένα φίλτρα.
Η δωρεάν βιβλιοθήκη Imaging έχει συμπεριλάβει πολλά σημαντικά χαρακτηριστικά που σχετίζονται με την επεξεργασία εικόνας, όπως αλλαγή μεγέθους εικόνων, περιστροφή εικόνας, περικοπή εικόνας, ρύθμιση φωτεινότητας εικόνας, ρυθμίσεις αντίθεσης εικόνας, διόρθωση γάμμα των εικόνων, αλλαγή του κορεσμού της εικόνας, κλωνοποίηση εικόνων, εικόνα θάμπωμα, κωδικοποίηση και αποκωδικοποίηση εικόνων, επικάλυψη εικόνας, προσθήκη ευκρίνειας, δημιουργία μικρογραφιών και πολλές άλλες δυνατότητες.
Ξεκινώντας με την Απεικόνιση
Ο ευκολότερος και προτεινόμενος τρόπος εγκατάστασης του Imagingis μέσω του GitHub.
Εγκαταστήστε το Imaging μέσω GitHub
go get -u github.com/disintegration/imaging
Δημιουργήστε νέα εικόνα μέσω Go API
Η βιβλιοθήκη απεικόνισης ανοιχτού κώδικα περιλαμβάνει υποστήριξη για τη δημιουργία νέων εικόνων μέσα στη δική τους εφαρμογή χρησιμοποιώντας εντολές Go. Η δημιουργία νέας εικόνας απαιτεί πλάτος εικόνας, ύψος, χρώμα φόντου της εικόνας και μορφή εξόδου της εικόνας. Μπορείτε επίσης να τροποποιήσετε εύκολα τη δημιουργημένη εικόνα και να εκτελέσετε διαφορετικές λειτουργίες όπως αναστροφή, ρύθμιση αδιαφάνειας, ανάμειξη, θόλωση και πολλά άλλα.
Δημιουργήστε νέα εικόνα μέσω Go API
func New(width, height int, fillColor color.Color) *image.NRGBA {
if width <= 0 || height <= 0 {
return &image.NRGBA{}
}
c := color.NRGBAModel.Convert(fillColor).(color.NRGBA)
if (c == color.NRGBA{0, 0, 0, 0}) {
return image.NewNRGBA(image.Rect(0, 0, width, height))
}
return &image.NRGBA{
Pix: bytes.Repeat([]byte{c.R, c.G, c.B, c.A}, width*height),
Stride: 4 * width,
Rect: image.Rect(0, 0, width, height),
}
}
Μετατροπή εικόνας σε άλλες μορφές μέσω Go
Οι προγραμματιστές λογισμικού μπορούν εύκολα να μετατρέψουν τις εικόνες τους σε άλλες υποστηριζόμενες μορφές αρχείων μέσα στις δικές τους εφαρμογές GO χρησιμοποιώντας μια δωρεάν βιβλιοθήκη απεικόνισης. Απλά πρέπει να δώσετε το όνομα της εικόνας και τη μορφή εικόνας εξόδου. Χρησιμοποιώντας τη λειτουργία Αποθήκευση μπορείτε εύκολα να εξαγάγετε τις εικόνες σε πολλές άλλες υποστηριζόμενες μορφές αρχείων εικόνας όπως PNG, BMP, GIF, JPEG, TIFF και άλλα.
Αλλαγή μεγέθους και περικοπή εικόνων
Το Free Imaging API έχει συμπεριλάβει λειτουργικότητα για αλλαγή μεγέθους εικόνων σύμφωνα με τις ανάγκες σας χρησιμοποιώντας εντολές Go. Πρώτα, πρέπει να ανοίξετε μια εικόνα και να δώσετε το ύψος καθώς και το πλάτος της εικόνας για να αλλάξετε το μέγεθός της. Μια άλλη επιλογή είναι ότι μπορείτε να αλλάξετε το μέγεθος της εικόνας παρέχοντας απλώς πλάτος διατηρώντας την αναλογία διαστάσεων. Η βιβλιοθήκη επιτρέπει επίσης την περικοπή της αρχικής εικόνας παρέχοντας προσαρμοσμένο πλάτος, ύψος και χρησιμοποιώντας την κεντρική άγκυρα.
Crop & Resort Image μέσω του Go API
func cropAndResize(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA {
dstW, dstH := width, height
srcBounds := img.Bounds()
srcW := srcBounds.Dx()
srcH := srcBounds.Dy()
srcAspectRatio := float64(srcW) / float64(srcH)
dstAspectRatio := float64(dstW) / float64(dstH)
var tmp *image.NRGBA
if srcAspectRatio < dstAspectRatio {
cropH := float64(srcW) * float64(dstH) / float64(dstW)
tmp = CropAnchor(img, srcW, int(math.Max(1, cropH)+0.5), anchor)
} else {
cropW := float64(srcH) * float64(dstW) / float64(dstH)
tmp = CropAnchor(img, int(math.Max(1, cropW)+0.5), srcH, anchor)
}
return Resize(tmp, dstW, dstH, filter)
}
Αναστροφή, περιστροφή, θόλωση και κλωνοποίηση εικόνων
Η βιβλιοθήκη Απεικόνισης έχει συμπεριλάβει αρκετές σημαντικές δυνατότητες για χειρισμό εικόνας, όπως αναστροφή εικόνας, περιστροφή εικόνας, θόλωση και κλωνοποίηση. Για να δημιουργήσετε ένα αντίγραφο μιας υπάρχουσας εικόνας, πρέπει απλώς να καλέσετε τη συνάρτηση Clone και να δώσετε την υπάρχουσα εικόνα. Η βιβλιοθήκη υποστηρίζει επίσης την περιστροφή και την ανατροπή της εικόνας σας με μερικές μόνο γραμμές κώδικα. Μπορείτε εύκολα να περιστρέψετε μια εικόνα κατά τη δεδομένη γωνία αριστερόστροφα. Η παράμετρος γωνίας είναι η γωνία περιστροφής σε μοίρες.
Κλώνος Εικόνα μέσω Go API
func Clone(img image.Image) *image.NRGBA {
src := newScanner(img)
dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h))
size := src.w * 4
parallel(0, src.h, func(ys <-chan int) {
for y := range ys {
i := y * dst.Stride
src.scan(0, y, src.w, y+1, dst.Pix[i:i+size])
}
})
return dst
}