我的朋友们, 我正在尝试将图像转换为c#控制台应用程序(.net 4.0)中的Base64字符串。
方法:
public static String ConvertBitmapToBase64String(Bitmap bitmap,
ImageFormat imageFormat)
{
String generatedString = string.Empty;
MemoryStream memoryStream = new MemoryStream();
bitmap.Save(memoryStream, imageFormat);
memoryStream.Position = 0;
byte[] byteBuffer = memoryStream.ToArray();
memoryStream.Close();
generatedString = Convert.ToBase64String(byteBuffer);
byteBuffer = null;
return generatedString;
}
但是当我调用这个方法时,它会抛出一个异常说:“generic gdi + error”,错误号是-2147467259。
祈求者代码:
StreamReader streamReader = new StreamReader(@"C:\Anita.jpg");
Bitmap bitmap = new Bitmap(streamReader.BaseStream);
streamReader.Close();
String base64String = ImageUtil.ConvertBitmapToBase64String(bitmap, ImageFormat.Jpeg);
有人可以帮我吗? 感谢。
答案 0 :(得分:0)
我看到的唯一可能的问题是图像太大或太大。也许,您可以直接使用File.ReadAllBytes而不是使用MemoryStream,而不是传递Bitmap对象,直接保存到MemoryStream,并保存。
此外,您正在使用StreamReader读取数据,StreamReader用于文本!只需将字节读入数组并调用Convert.ToBase64String()即可处理您想要执行的操作。