GIF-Bild in GO in Base64 konvertieren

WBOY
Freigeben: 2024-02-09 14:54:08
nach vorne
971 Leute haben es durchsucht

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

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

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

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!