Heim >Backend-Entwicklung >Golang >GIF-Bild in GO in Base64 konvertieren

GIF-Bild in GO in Base64 konvertieren

WBOY
WBOYnach vorne
2024-02-09 14:54:081031Durchsuche

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.

Frageinhalt

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

Lösung

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen