In der Webentwicklung ist die Bildtranskodierung eine sehr häufige Anforderung. In Golang können Sie Bilder transkodieren, indem Sie die Pakete image und image/jpeg in der Standardbibliothek verwenden.
In Golang können Bilder über image.Decoder in Standardbildobjekte dekodiert werden, und Standardbildobjekte können über image.Encoder usw. in erforderliche Bildformate wie JPG, PNG und BMP kodiert werden . In diesem Artikel wird als Beispiel die Transkodierung eines Bildes im JPEG-Format in das PNG-Format verwendet.
Zuerst müssen wir ein Bild im JPEG-Format einlesen, was durch den folgenden Code erreicht werden kann:
file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) }
Im obigen Code verwenden wir os.Open Um einen Namen zu öffnen, handelt es sich um eine Bilddatei von input.jpg. Wenn das Öffnen fehlschlägt, wird ein Fehler ausgegeben. Dann verwenden wir jpeg.Decode, um die Datei in ein Bildobjekt img zu dekodieren. Wenn die Dekodierung fehlschlägt, wird ein Fehler ausgegeben.
Als nächstes müssen wir das Bildobjekt in ein Bild im PNG-Format kodieren. Wir können den Encoder im Image/PNG-Paket wie folgt zum Codieren verwenden:
out, err := os.Create("output.png") if err != nil { log.Fatal(err) } defer out.Close() err = png.Encode(out, img) if err != nil { log.Fatal(err) }
Im obigen Code verwenden wir os.Create, um eine Bilddatei im PNG-Format mit dem Namen „output.png“ zu erstellen Bei einem Fehler wird ein Fehler ausgegeben. Dann verwenden wir png.Encode, um das Bildobjekt img in ein Bild im PNG-Format zu kodieren, und schreiben das Ergebnis in „output.png“. Wenn die Kodierung fehlschlägt, wird ein Fehler ausgegeben.
Die vollständige Implementierung des obigen Codes ist wie folgt:
package main import ( "image/jpeg" "image/png" "log" "os" ) func main() { file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) } out, err := os.Create("output.png") if err != nil { log.Fatal(err) } defer out.Close() err = png.Encode(out, img) if err != nil { log.Fatal(err) } log.Println("Image conversion successful!") }
Durch Ausführen des obigen Codes kann ein Bild im JPEG-Format in ein Bild im PNG-Format transkodiert werden. Es ist zu beachten, dass wir Fehler während des Transkodierungsprozesses angemessen behandeln und die entsprechenden Ressourcen nach der Verwendung der Dateien und Bildobjekte schließen müssen.
Das obige ist der detaillierte Inhalt vonSo transkodieren Sie Bilder in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!