前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#实现图片转Base64字符串,以及base64字符串在Markdown文件内复原的演示

C#实现图片转Base64字符串,以及base64字符串在Markdown文件内复原的演示

作者头像
Wesky
发布2024-08-13 19:04:00
550
发布2024-08-13 19:04:00
举报
文章被收录于专栏:Dotnet Dancer

引用1.0.3版本或以上的Wesky.Net.OpenTools 包

1.0.3 版本提供图片转Base64字符串方案,并提供根据后缀名自动识别Mime类型,合成标准URI

该nuget包支持.net framework4.6.1和以上、.net core2和以上、.net 5和以上所有环境使用。

开源项目地址:

Gitee:https://gitee.com/dreamer_j/open-tools.git Github:https://github.com/LittleLittleRobot/OpenTools.git

引用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

代码语言:javascript
复制
static void Main(string[] args)
{
var file = @"xxx.jpg";
var data = Wesky.Net.OpenTools.Converter.ImageConvert.ConvertImageToBase64(file);
var mdString = $"![avatar]({data})";
    Console.WriteLine(mdString);
}

运行程序,得到base64字符串.base64字符串。base64字符串,使用格式:![avatar](base64字符串)的形式,即可被markdown所识别,并显示未原始图片。

复制该全部字符串内容,粘贴到任意markdown文本编辑器内。以下我用Typora实验,可以看到自动解析出文本,并显示了我用来实验的图片。

核心代码解析:

代码语言:javascript
复制
/// <summary>
/// 将图片文件转换为 Base64 编码的字符串。
/// Converts an image file to a Base64-encoded string.
/// </summary>
/// <param name="imagePath">图片文件的路径。Path to the image file.</param>
/// <returns>返回 Base64 编码的图片字符串。Returns a Base64-encoded image string.</returns>
public static string ConvertImageToBase64(string imagePath)
{
if (!File.Exists(imagePath))
    {
throw new FileNotFoundException("指定的图片路径不存在。Specified image path does not exist.");
    }
byte[] imageBytes = File.ReadAllBytes(imagePath);
string mimeType = GetMimeType(imagePath);
string base64String = Convert.ToBase64String(imageBytes);
return $"data:{mimeType};base64,{base64String}";
}

支持图片格式:

代码语言:javascript
复制
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";
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dotnet Dancer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档