引用1.0.3版本或以上的Wesky.Net.OpenTools 包
1.0.3 版本提供圖片轉Base64字串方案,並提供根據字尾名自動識別Mime型別,合成標準URI
開源專案地址:
Gitee:https://gitee.com/dreamer_j/open-tools.git
Github:https://github.com/LittleLittleRobot/OpenTools.git
為了簡單操作,我直接把base64字串,外面套一層,讓它支援md檔案展示。圖片地址為桌面上個人公眾號圖片地址,格式型別為jpg
1 var file = @"XXX.jpg";
2 var data = Wesky.Net.OpenTools.Converter.ImageConvert.ConvertImageToBase64(file);
3 var mdString = $"![avatar]({data})";
4 Console.WriteLine(mdString);
執行程式,得到base64字串.base64字串。base64字串,使用格式:![avatar](base64字串)的形式,即可被markdown所識別,並顯示未原始圖片。
複製該全部字串內容,貼上到任意markdown文字編輯器內。以下我用Typora實驗,可以看到自動解析出文字,並顯示了我用來實驗的圖片。
核心程式碼解析:
1 /// <summary>
2 /// 將圖片檔案轉換為 Base64 編碼的字串。
3 /// Converts an image file to a Base64-encoded string.
4 /// </summary>
5 /// <param name="imagePath">圖片檔案的路徑。Path to the image file.</param>
6 /// <returns>返回 Base64 編碼的圖片字串。Returns a Base64-encoded image string.</returns>
7 public static string ConvertImageToBase64(string imagePath)
8 {
9 if (!File.Exists(imagePath))
10 {
11 throw new FileNotFoundException("指定的圖片路徑不存在。Specified image path does not exist.");
12 }
13 byte[] imageBytes = File.ReadAllBytes(imagePath);
14 string mimeType = GetMimeType(imagePath);
15 string base64String = Convert.ToBase64String(imageBytes);
16 return $"data:{mimeType};base64,{base64String}";
17 }
支援的圖片格式為:
case ".bmp": return "image/bmp"; case ".gif": return "image/gif"; case ".jpg": case ".jpeg": return "image/jpeg"; case ".png": return "image/png"; case ".tif": case ".tiff": return "image/tiff"; case ".ico": return "image/x-icon";