将八位字节流 base64 字符串转换为图像

时间:2021-06-07 11:14:50

标签: c# image base64

我想在 C# 中将 application/octet-stream base 64 字符串转换为图像。请帮我完成这个转换。

这是字符串: ERQVHykzPkpWY3F/jp2tvMnU3ubs8fX5+/z8/Pr39PDq5d/Y0cvCu7Oro5uTjIR9dm9pY11ZVFBMSUZEQT47OTY0MjAuLSopJyUjIR8eHBsZGRcWFRUUExMSEREQDw8ODg4ODg0NDAwLCwoKCgoKCwsLDA0NDQ4ODg4ODw8QERI=

1 个答案:

答案 0 :(得分:2)

您的 base64 字符串包含一个编码的二进制文件。二进制文件的 MIME 类型为 application/octet-stream。您将只能转换 image/octet-stream MIME 类型文件的 base64 字符串。

话虽如此,您可以将 base64 MIME 类型文件的 image/octet-stream 字符串转换为字节数组,然后使用 MemoryStream 从中合成图像。

using System.Drawing;

public static Image LoadBase64(string base64)
{
    byte[] bytes = Convert.FromBase64String(base64);
    MemoryStream ms = new MemoryStream(bytes)
    Image image = Image.FromStream(ms);
    
    return image;
}

使用

Image myImage = LoadBase64(base64string);

替代方案

您可以使用实现 ImageConverter 方法的 ConvertFrom() 类。它允许您将指定的对象转换为图像。

public Image byteArrayToImage(byte[] byteArray)
{
    System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
    Image image = (Image)converter.ConvertFrom(byteArray);

    return image;
}
相关问题