• C#实现图片转Base64字符串.并支持markdown文件打开展示


    引用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 /// 
     2 /// 将图片文件转换为 Base64 编码的字符串。
     3 /// Converts an image file to a Base64-encoded string.
     4 /// 
     5 /// 图片文件的路径。Path to the image file.
     6 /// 返回 Base64 编码的图片字符串。Returns a Base64-encoded image string.
     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";​
    复制代码

     

     

     

  • 相关阅读:
    Windows RDP远程桌面优化
    Python名片管理系统 彩色控制台版
    Java中如何对List遍历呢?
    重要活动 | 林乐博士受邀出席“绿色金融创新策略与应用”论坛
    tictoc例子理解6-9
    工业设计公司常对设计有什么要求?
    Matlab:构建模式表达式
    GMOS6803为7频段高精度RTK系统应用桥梁监测
    ESP32设备通信-Mesh网络通信
    ssm毕设项目学生宿舍管理系统1d68v(java+VUE+Mybatis+Maven+Mysql+sprnig)
  • 原文地址:https://www.cnblogs.com/weskynet/p/18188836