Dalam bahasa GO, menukar imej GIF kepada pengekodan Base64 ialah operasi biasa. Dengan menukar data imej kepada pengekodan Base64, kami boleh membenamkan imej dengan mudah dalam halaman web atau menghantar data imej dalam bentuk rentetan. Dalam bahasa GO, anda boleh menggunakan fungsi dalam pakej pengekodan/base64 untuk mencapai penukaran ini. Penukaran ini sangat mudah dan boleh dilakukan dengan hanya beberapa baris kod. Di bawah, saya akan memperkenalkan kepada anda cara menukar imej GIF kepada pengekodan Base64 dalam bahasa GO.
Saya cuba menghantar fail gif melalui udp in go, saya fikir cara paling mudah ialah menukar imej gif kepada rentetan base64 dan menghantarnya, tetapi apabila saya menukar bait fail kepada base64 ia mengembalikan kosong rentetan, saya telah mencuba modul "chilkat" menggunakan kod berikut:
bd := chilkat.NewBinData() success := bd.LoadFile(path.Join(folderPath, "final.gif")) if success != true { panic("Fail!") bd.DisposeBinData() return } b64Data := *bd.GetEncoded("base64")
Tetapi ia tidak berkesan, jika sesiapa boleh membantu saya
Penyelesaian saya ialah:
var buff bytes.buffer gif.encodeall(&buff, &anim) based := base64.stdencoding.encodetostring(buff.bytes())
Tetapi rentetan base64 jelas terlalu panjang untuk dihantar dalam udp, Jadi penyelesaian untuk penghantaran yang betul adalah ini:
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"))
Atas ialah kandungan terperinci Tukar imej gif kepada base64 dalam GO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!