Open-Source-Go-Bibliothek zur Erstellung und Bearbeitung von Bildern
Leistungsstarke Go API, die Größenänderung, Zuschneiden und Drehen von JPEG-, PNG-, GIF-, TIFF- und BMP-Bildern unterstützt. Sie können auch die Bildhelligkeit, den Kontrast und die Gammakorrektur der Bilder anpassen.
Die Open-Source-API von Go Imaging ist ein sehr leistungsfähiges Paket, das vollständige Funktionen für die Erstellung und Bearbeitung von Bildern bietet. Die Bibliothek ist sehr flexibel und ermöglicht es Entwicklern, mit nur wenigen Codezeilen problemlos neue Bilder zu erstellen und vorhandene zu ändern.
The Imaging ist eine reine Go-Bibliothek, die klein und leistungsfähig ist. Es hat Unterstützung für mehrere wichtige Bilddateiformate wie JPEG, NG, GIF, TIFF, BMP und viele mehr enthalten. Die Bibliothek hat auch mehrere Abtastfilter für Bildreste enthalten. Einige wichtige Filter sind NearestNeighbor, Lancers, CatmullRom, MitchellNetravali, Linear, Box usw. Die Bibliothek hat Entwicklern auch ermöglicht, eigene Filter zu erstellen.
Die kostenlose Bildbearbeitungsbibliothek enthält einige wichtige Funktionen zur Bildverarbeitung, wie z.B. Bildreste, Bildrotation, Bildbearbeitung, Bildkorrektur, Farbkontrastkorrektur der Bilder, Änderung der Sättigung.
Erste Schritte mit der Bildgebung
Der einfachste und empfohlene Weg, Imaging zu installieren, ist über GitHub.
Installieren Sie Imaging über GitHub
go get -u github.com/disintegration/imaging
Neues Bild über die Go-API generieren
Die Open-Source-Imaging-Bibliothek bietet Unterstützung für das Generieren neuer Bilder in ihrer eigenen Anwendung mithilfe von Go-Befehlen. Die neue Bilderzeugung erfordert Bildbreite, -höhe, Hintergrundfarbe des Bildes und Ausgabeformat des Bildes. Sie können das erstellte Bild auch einfach ändern und verschiedene Vorgänge wie Spiegeln, Einstellen der Deckkraft, Mischen, Weichzeichnen und vieles mehr ausführen.
Neues Bild über die Go-API generieren
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),
}
}
Bildkonvertierung in andere Formate über Go
Softwareentwickler können ihre Bilder mithilfe einer kostenlosen Bildbibliothek problemlos in andere unterstützte Dateiformate in ihren eigenen GO-Apps konvertieren. Sie müssen nur den Bildnamen und das Ausgabebildformat angeben. Mit der Speicherfunktion können Sie die Bilder ganz einfach in mehrere andere unterstützte Bilddateiformate wie PNG, BMP, GIF, JPEG, TIFF und mehr exportieren.
Bilder skalieren und zuschneiden
Die Free-Imaging API hat Funktionen für das Residieren von Bildern nach Ihren Bedürfnissen mit Go-Befehlen integriert. Zuerst müssen Sie ein Bild öffnen und die Höhe sowie die Breite des Bildes angeben, um es zu verändern. Eine andere Option ist, dass Sie die Größe des Bildes ändern können, indem Sie einfach die Breite angeben, indem Sie das Seitenverhältnis erhalten. Die Bibliothek erlaubt auch das Ausschneiden des ursprünglichen Bildes, indem sie benutzerdefinierte Breite, Höhe und den Mittelanker zur Verfügung stellt.
Image via 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)
}
Bilder spiegeln, drehen, verwischen und klonen
Die Imaging-Bibliothek enthält mehrere wichtige Funktionen für die Bildbearbeitung, z. B. Bildspiegelung, Bilddrehung, Unschärfe und Klonen. Um eine Kopie eines vorhandenen Bildes zu erstellen, müssen Sie nur die Clone-Funktion aufrufen und das vorhandene Bild bereitstellen. Die Bibliothek unterstützt auch das Drehen und Spiegeln Ihres Bildes mit nur wenigen Codezeilen. Sie können ein Bild ganz einfach um den angegebenen Winkel gegen den Uhrzeigersinn drehen. Der Winkelparameter ist der Rotationswinkel in Grad.
Klon Image via 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
}