我试图获取存储在资源文件中的图像,然后尝试将其转换为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/