我试图获取存储在资源文件中的图像,然后尝试将其转换为base64字符串。但是它生成下面的垃圾字符串是我的代码:

String imgBase64=Base64FromByteArray(ExtractResource(Properties.Resources.products_tipp_110));

public static byte[] ExtractResource(Bitmap image)
    {
        MemoryStream ms = new MemoryStream();

        image.Save(ms, ImageFormat.Png);
        if (ms == null)
            return null;
        byte[] imageByteArray = new byte[ms.Length];
        ms.Read(imageByteArray, 0, imageByteArray.Length);
        return imageByteArray;
    }

private static string Base64FromByteArray(byte[] image)
    {
        return "base64:" + Convert.ToBase64String(image);
    }


output:
   base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAA..... with all A's

最佳答案

您可以尝试使用此byte[] imageByteArray = ms.ToArray()将内存流转换为字节数组,如下所示。

另外,请确保您使用的图像是png,如ImageFormat.Png

String imgBase64=Base64FromByteArray(ExtractResource(Properties.Resources.products_tipp_110));

public static byte[] ExtractResource(Bitmap image)
    {
        MemoryStream ms = new MemoryStream();

        image.Save(ms, ImageFormat.Png);
        if (ms == null)
            return null;
        byte[] imageByteArray = ms.ToArray();;
        return imageByteArray;
    }

private static string Base64FromByteArray(byte[] image)
    {
        return "base64:" + Convert.ToBase64String(image);
    }

关于c# - 无法将资源文件中存储的图像转换为Asp.net [C#]中的Base64字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40844213/

10-12 02:17