.NET怎么将图片文件转换为Base64字符串

来源:这里教程网 时间:2026-02-21 17:29:36 作者:

在 .NET 中将图片文件转换为 Base64 字符串非常简单,主要步骤是读取图片的二进制数据,然后使用 Convert.ToBase64String 方法将其编码为 Base64 字符串。

读取图片并转换为 Base64 字符串

以下是一个通用的方法,适用于 .NET Framework、.NET Core 和 .NET 5+:

public static string ImageToBase64(string imagePath)
{
    if (!File.Exists(imagePath))
        throw new FileNotFoundException("图片文件不存在", imagePath);
    byte[] imageBytes = File.ReadAllBytes(imagePath);
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
}

你可以这样调用:

string imagePath = @"C:\images\example.jpg";
string base64 = ImageToBase64(imagePath);
Console.WriteLine(base64);

获取带 Data URI 的 Base64(用于网页显示)

如果要在 HTML 中直接显示图片,可以加上 MIME 类型前缀:

public static string ImageToBase64WithMimeType(string imagePath)
{
    string base64 = ImageToBase64(imagePath);
    string mimeType = GetMimeType(imagePath);
    return $"data:{mimeType};base64,{base64}";
}
private static string GetMimeType(string imagePath)
{
    // 简单根据扩展名判断 MIME 类型
    string ext = Path.GetExtension(imagePath).ToLower();
    return ext switch
    {
        ".jpg" or ".jpeg" => "image/jpeg",
        ".png" => "image/png",
        ".gif" => "image/gif",
        ".bmp" => "image/bmp",
        ".webp" => "image/webp",
        _ => "image/unknown"
    };
}

返回结果类似:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE...

从 Stream 转换(适用于上传场景)

如果你处理的是 Stream 类型(如 ASP.NET Core 中的 IFormFile.OpenReadStream):

public static string ImageStreamToBase64(Stream stream)
{
    using (var memoryStream = new MemoryStream())
    {
        stream.CopyTo(memoryStream);
        byte[] imageBytes = memoryStream.ToArray();
        return Convert.ToBase64String(imageBytes);
    }
}

这种方式适合 Web 应用中接收上传图片后立即转为 Base64 存储或传输。

基本上就这些。核心就是读二进制 + ToBase64String,再根据用途决定是否加 MIME 头。不复杂但容易忽略文件存在性和编码一致性。

相关推荐