Heim >Backend-Entwicklung >Golang >GIF-Bild in GO in Base64 konvertieren
In der GO-Sprache ist das Konvertieren von GIF-Bildern in die Base64-Kodierung ein üblicher Vorgang. Durch die Konvertierung von Bilddaten in die Base64-Kodierung können wir Bilder problemlos in Webseiten einbetten oder Bilddaten in Stringform übertragen. In der GO-Sprache können Sie die Funktionen im Paket „encoding/base64“ verwenden, um diese Konvertierung zu erreichen. Diese Konvertierung ist sehr einfach und kann mit nur wenigen Codezeilen durchgeführt werden. Im Folgenden werde ich Ihnen vorstellen, wie Sie GIF-Bilder in die Base64-Kodierung in der GO-Sprache konvertieren.
Ich versuche, eine GIF-Datei über udp in go zu senden. Ich dachte, der einfachste Weg wäre, das GIF-Bild in einen Base64-String zu konvertieren und zu senden, aber wenn ich die Dateibytes in Base64 konvertiere, wird ein leeres Ergebnis zurückgegeben string, ich habe das Modul „chilkat“ mit dem folgenden Code ausprobiert:
bd := chilkat.NewBinData() success := bd.LoadFile(path.Join(folderPath, "final.gif")) if success != true { panic("Fail!") bd.DisposeBinData() return } b64Data := *bd.GetEncoded("base64")
Aber es funktioniert nicht, falls mir jemand helfen kann
Meine Lösung ist diese:
var buff bytes.buffer gif.encodeall(&buff, &anim) based := base64.stdencoding.encodetostring(buff.bytes())
Aber der Base64-String ist offensichtlich zu lang, um ihn per UDP zu senden. Die Lösung für den korrekten Versand lautet also:
encoded := recordScreenToGIF(seconds) // Record X seconds of screen, & convert the result into a base64 GIF splited := SplitSubN(encoded, 10000) // Split "encoded" each 10K characters conn.Write([]byte(strconv.Itoa(len(splited)))) for _, elm := range splited { _, err = conn.Write([]byte(elm)) if err != nil { panic(err) } time.Sleep(50 * time.Millisecond) } conn.Write([]byte("Done"))
Das obige ist der detaillierte Inhalt vonGIF-Bild in GO in Base64 konvertieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!