go脚本
# GO脚本
# 用于为markdown生成base64图片1
func main() {
directory := "F:/Download/1697879647414" // 指定图片目录
// 打开目录
dir, err := os.Open(directory)
if err != nil {
fmt.Println("无法打开目录:", err)
return
}
defer dir.Close()
// 读取目录下的文件
fileInfos, err := dir.Readdir(-1)
if err != nil {
fmt.Println("无法读取目录文件:", err)
return
}
// 创建保存Base64数据的文件
outputFile, err := os.Create(filepath.Join(directory, "img.txt"))
if err != nil {
fmt.Println("无法创建输出文件:", err)
return
}
defer outputFile.Close()
for _, fileInfo := range fileInfos {
if fileInfo.IsDir() {
continue // 跳过子目录
}
// 检查文件扩展名是否为.jpg
if strings.HasSuffix(fileInfo.Name(), ".jpg") {
// 读取图片文件
imageFilePath := filepath.Join(directory, fileInfo.Name())
imageData, err := ioutil.ReadFile(imageFilePath)
if err != nil {
fmt.Printf("无法读取图片文件 %s: %v\n", fileInfo.Name(), err)
continue
}
// 将图片数据编码为Base64格式
base64Image := base64.StdEncoding.EncodeToString(imageData)
// 格式化结果,包括前缀和文件名(去除后缀)
result := fmt.Sprintf("[%s]:data:image/jpeg;base64,%s\n", strings.TrimSuffix(fileInfo.Name(), ".jpg"), base64Image)
// 将结果写入输出文件
_, err = outputFile.WriteString(result)
if err != nil {
fmt.Printf("无法写入输出文件: %v\n", err)
}
}
}
fmt.Println("Base64数据已保存在 img.txt 文件中")
}
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 用于为markdown生成base64图片
func main() {
directory := "D:\\project\\ATS帮助文档\\docs\\01.详细指南\\01.项目" // 指定图片目录
convertImg2Base64(directory)
}
// 用于为markdown生成base64图片 [质量管理界面说明]:data:image/png;base64,xxxxxx
// 引用格式:![质量管理界面说明][质量管理界面说明]
func convertImg2Base64(directory string) {
// 打开目录
dir, err := os.Open(directory)
if err != nil {
fmt.Println("无法打开目录:", err)
return
}
defer dir.Close()
// 创建保存Base64数据的文件
outputFile, err := os.Create(filepath.Join(directory, "img.txt"))
if err != nil {
fmt.Println("无法创建输出文件:", err)
return
}
defer outputFile.Close()
convertToBase64 := func(filePath string) {
fileData, err := ioutil.ReadFile(filePath)
if err != nil {
fmt.Printf("无法读取文件 %s: %v\n", filePath, err)
return
}
fileExt := filepath.Ext(filePath)
base64Data := base64.StdEncoding.EncodeToString(fileData)
result := fmt.Sprintf("[%s]:data:image/%s;base64,%s\n", strings.TrimSuffix(filepath.Base(filePath), fileExt), fileExt[1:], base64Data)
_, err = outputFile.WriteString(result)
if err != nil {
fmt.Printf("无法写入输出文件: %v\n", err)
}
}
fileInfos, err := dir.Readdir(-1)
if err != nil {
fmt.Println("无法读取目录文件:", err)
return
}
for _, fileInfo := range fileInfos {
if fileInfo.IsDir() {
continue // 跳过子目录
}
// 只处理jpg和png文件
if strings.HasSuffix(fileInfo.Name(), ".jpg") || strings.HasSuffix(fileInfo.Name(), ".png") {
imageFilePath := filepath.Join(directory, fileInfo.Name())
convertToBase64(imageFilePath)
}
}
fmt.Println("Base64数据已保存在 img.txt 文件中")
}
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60