Tianyi's Blog Tianyi's Blog
首页
  • 计算机网络
  • 操作系统
  • 计算机科学
  • Nginx
  • Vue框架
  • 环境配置
  • Java
  • JVM
  • Spring框架
  • Redis
  • MySQL
  • RabbitMQ
  • Kafka
  • Mirror Sites
  • Dev Tools
  • Docker
  • Jenkins
  • Scripts
  • Windows
  • 科学上网
  • 旅行
  • 网站日记
  • 软件
  • 电子产品
  • 杂野
  • 分类
  • 友情链接
GitHub (opens new window)

Tianyi

一直向前,永不停止
首页
  • 计算机网络
  • 操作系统
  • 计算机科学
  • Nginx
  • Vue框架
  • 环境配置
  • Java
  • JVM
  • Spring框架
  • Redis
  • MySQL
  • RabbitMQ
  • Kafka
  • Mirror Sites
  • Dev Tools
  • Docker
  • Jenkins
  • Scripts
  • Windows
  • 科学上网
  • 旅行
  • 网站日记
  • 软件
  • 电子产品
  • 杂野
  • 分类
  • 友情链接
GitHub (opens new window)
  • Java

  • Golang

    • Go Basics
    • Go Modules
    • go脚本
      • 用于为markdown生成base64图片1
      • 用于为markdown生成base64图片
  • JVM的奇妙世界

  • Spring

  • Spring增强封装

  • Redis

  • MySQL

  • RabbitMQ

  • Kafka

  • 分享

  • 后端
  • Golang
tianyi
2023-10-22
目录

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

# 用于为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
完善页面 (opens new window)
Go Modules
虚拟机1-宏观视角

← Go Modules 虚拟机1-宏观视角→

最近更新
01
JDK
02-23
02
BadTasteCode && 优化
09-11
03
Gradle 实践操作指南及最佳实践
09-11
更多文章>
Theme by Vdoing | Copyright © 2021-2025 Tandy | 粤ICP备2023113440号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式