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.
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
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!