通用GDI +错误(错误号-2147467259)

时间:2013-09-25 17:11:48

标签: c# .net base64 gdi+

我的朋友们, 我正在尝试将图像转换为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);

有人可以帮我吗? 感谢。

1 个答案:

答案 0 :(得分:0)

我看到的唯一可能的问题是图像太大或太大。也许,您可以直接使用File.ReadAllBytes而不是使用MemoryStream,而不是传递Bitmap对象,直接保存到MemoryStream,并保存。

此外,您正在使用StreamReader读取数据,StreamReader用于文本!只需将字节读入数组并调用Convert.ToBase64String()即可处理您想要执行的操作。