首页 >后端开发 >Golang >在GO中将gif图像转换为base64

在GO中将gif图像转换为base64

WBOY
WBOY转载
2024-02-09 14:54:081017浏览

在GO中将gif图像转换为base64

在GO语言中,将GIF图像转换为Base64编码是一种常见的操作。通过将图像数据转换为Base64编码,我们可以方便地在网页中嵌入图片,或者将图片数据以字符串形式传输。在GO语言中,可以使用encoding/base64包中的函数来实现这一转换。这种转换操作非常简单,只需几行代码即可完成。下面,我将为大家介绍如何在GO语言中将GIF图像转换为Base64编码。

问题内容

我正在尝试在go中通过udp发送gif文件,我认为最简单的方法是将gif图像转换为base64字符串并发送它,但是当我将文件字节转换为base64时它返回一个空字符串,我已经使用以下代码尝试了模块“chilkat”:

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

但是它不起作用,如果有人可以帮助我

解决方法

我的解决方案是这样的:

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

但是base64字符串显然太长而无法在udp中发送, 所以正确发送的解决方案是这样的:

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

以上是在GO中将gif图像转换为base64的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除