Go语言中图片与Base64互相转换

1、图片转成Base64

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package main

import (
"encoding/base64"
"fmt"
"os"
)

func main() {
file, err := os.Open("jw.png")
if err != nil {
fmt.Printf("os open file error %v\n", err)
return
}
defer file.Close()

// 获取文件的统计相关信息
info, err := file.Stat()
if err != nil {
fmt.Printf("file stat error %v\n", err)
return
}

srcBuffer := make([]byte, info.Size())
n, err := file.Read(srcBuffer)
if err != nil {
fmt.Printf("file read error %v\n", err)
return
}

// 转base64
base64Str := base64.StdEncoding.EncodeToString(srcBuffer[:n])
fmt.Printf("Base64: %v\n", base64Str)
}

2、Base64转成图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package main

import (
"encoding/base64"
"fmt"
"os"
)

func main() {
base64Str := "xxxxx"

base64Bytes, err := base64.StdEncoding.DecodeString(base64Str)
if err != nil {
fmt.Printf("base64 decode string error %v\n", err)
return
}

// 创建图片
newFile, err := os.OpenFile("demo004/new.png", os.O_RDWR|os.O_CREATE, os.ModePerm)
if err != nil {
fmt.Printf("os open new file error %v\n", err)
return
}
defer newFile.Close()
newFile.Write(base64Bytes)
}

Go语言中图片与Base64互相转换

https://lzj09.github.io/2021/04/20/go-img-base64/

作者

lzj09

发布于

2021-04-20

更新于

2021-04-20

许可协议

评论