【C#】Out of memory. A generic error occurred in GDI+.at System.Drawing.Image.RotateFlip

问题

在显示图片时出现大红叉,偶现问题

查看后台日志记录,出现错误如下

1.
System.OutOfMemoryException: Out of memory.
   at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
   at System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)
   at System.Drawing.Graphics.DrawImage(Image image, Rectangle rect)
   at System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

2.

System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+.
   at System.Drawing.Image.RotateFlip(RotateFlipType rotateFlipType)

 

分析

1.

出现Out of memory.

如果文件没有有效的图像格式,或者如果 GDI+ 不支持文件的像素格式,则此方法将引发 OutOfMemoryException 异常

或者

真的内存不足,软件可能存在频繁刷新

2.

出现A generic error occurred in GDI+.

在执行图片旋转RotateFlip方法时出错

 

处理

1.

出现Out of memory.

第2种处理方法

 

2.

出现A generic error occurred in GDI+.

 

原来的代码

img.RotateFlip(RotateFlipType.Rotate180FlipNone);
picImage.Image = img;

修改后的代码

Bitmap bitmap = new Bitmap(img);
bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);
picImage.Image = bitmap;

 

由于出现大红叉是偶现问题,还需要一定时间验证

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ARM GDI协议适配器:在尝试写入内存时发生了错误。 ARM GDI协议适配器是一种用于ARM处理器的调试工具,用于与主机计算机进行通信,并进行调试和编程操作。该错误消息“尝试写入内存时发生了错误”通常发生在调试过程中,可能由以下几个原因引起: 1. 内存访问权限错误:这个错误可能是由于尝试写入受保护的内存区域而引起的。在ARM处理器中,访问内存需要满足一定的权限要求。如果没有正确的权限,就无法写入内存并会触发此错误。 2. 无法访问的内存地址:这个错误可能是由于尝试写入无效的内存地址而引起的。当指定的内存地址不存在或没有分配内存时,就无法写入相应的内存位置,并会导致此错误。 3. 软件错误或编程错误:这个错误可能是由于软件代码或编程错误引起的。如果在程序中存在编程错误,例如错误的写入地址、无效的指针或内存溢出等问题,就可能导致此错误的发生。 解决这个错误需要仔细检查和分析出错的情况,并根据具体的原因采取相应的解决方法。可能需要仔细检查代码中的错误,并确保正确地访问内存。如果是权限问题,可能需要重新配置权限或获取正确的权限等。在调试过程中,还可以使用其他工具和方法来定位和解决出错的问题。最终,通过修复引起错误的原因,可以成功解决“尝试写入内存时发生了错误”的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值