记得有一次和一家厂商做对接的时候,要求我们的图片数据转换成二进制这样传输过去,那么在go语言开发的时候,如何实现这一个需求呢,找遍go语言的标准库,没有发现对应的标准接口,最后在万能的github上面找到一个第三方框架 biu
一、基础数据和二进制互相转换
import (
"bytes"
"fmt"
"github.com/imroc/biu"
)
func main() {
fmt.Println(biu.ToBinaryString(3))
fmt.Println(biu.ToBinaryString(int8(4)))
fmt.Println(biu.ToBinaryString(uint16(2)))
fmt.Println(biu.ToBinaryString([]byte{1, 2, 3}))
s := biu.BytesToBinaryString([]byte("xxxx.png"))
fmt.Println(s[1 : len(s)-1])
fmt.Println(biu.ToBinaryString([]byte("zhangguo")))
}
out:
[00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000011]
00000100
[00000000 00000010]
[00000001 00000010 00000011]
01111000 01111000 01111000 01111000 00101110 01110000 01101110 01100111
[01111010 01101000 01100001 01101110 01100111 01100111 01110101 01101111]
二、图片数据类型转换成二进制或者base64
func ImageToBinary() {
ff, er := ioutil.ReadFile("xxxx.png")
if er != nil {
fmt.Println(er)
} else {
fmt.Println(biu.ToBinaryString(ff))
base64Str := base64.StdEncoding.EncodeToString(ff)
fmt.Println(base64Str)
}
}