首頁 >後端開發 >Golang >在GO中將gif影像轉換為base64

在GO中將gif影像轉換為base64

WBOY
WBOY轉載
2024-02-09 14:54:081031瀏覽

在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刪除