Maison  >  Article  >  développement back-end  >  Convertir l'image GIF en base64 dans GO

Convertir l'image GIF en base64 dans GO

WBOY
WBOYavant
2024-02-09 14:54:08942parcourir

Convertir limage GIF en base64 dans GO

En langage GO, la conversion d'images GIF en encodage Base64 est une opération courante. En convertissant les données d'image en codage Base64, nous pouvons facilement intégrer des images dans des pages Web ou transmettre des données d'image sous forme de chaîne. Dans le langage GO, vous pouvez utiliser les fonctions du package encoding/base64 pour réaliser cette conversion. Cette conversion est très simple et peut être effectuée avec seulement quelques lignes de code. Ci-dessous, je vais vous présenter comment convertir des images GIF en codage Base64 en langage GO.

Contenu de la question

J'essaie d'envoyer un fichier gif via udp en go, j'ai pensé que le moyen le plus simple était de convertir l'image gif en chaîne base64 et de l'envoyer, mais lorsque je convertis les octets du fichier en base64, il renvoie un vide string, j'ai essayé le module "chilkat" en utilisant le code suivant :

bd := chilkat.NewBinData()
success := bd.LoadFile(path.Join(folderPath, "final.gif"))
if success != true {
    panic("Fail!")
    bd.DisposeBinData()
    return
}
b64Data := *bd.GetEncoded("base64")

Mais ça ne marche pas, si quelqu'un peut m'aider

Solution

Ma solution est la suivante :

var buff bytes.buffer
gif.encodeall(&buff, &anim)
based := base64.stdencoding.encodetostring(buff.bytes())

Mais la chaîne base64 est évidemment trop longue pour être envoyée en udp, Alors la solution pour un envoi correct est la suivante :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer