So transkodieren Sie Bilder in Golang

PHPz
Freigeben: 2023-04-23 16:14:48
Original
1098 Leute haben es durchsucht

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)
}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!")

}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage