c#使用Bitmap绘图的时候,内存增大问题
2022/8/22 5:53:29
本文主要是介绍c#使用Bitmap绘图的时候,内存增大问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近碰到一个问题,就是使用Biamap绘图的时候,为了防止闪烁,使用了双缓存绘制的方式,但是会碰到内存急剧增加的情况,而且在XP的工控机和Win10的机器上运行结果不一样,在Win10
上运行的时候,内存增加的不是很明显,而在XP机子上运行一段时间,就会直接自动退出,我怀疑是XP工控机内存没有及时的释放,所以导致程序自动退出,所以每次绘图完后调用GC.Collect()
的方式手动释放掉,不仅Win10的内存稳定在几十M,而且XP也可以长时间稳定运行。
/// <summary> /// 绘制图像 /// </summary> /// <param name="graphics"></param> public void DrawImage(Graphics graphics) { if (_ShowImage != null) { //移动g的中心点 graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.HighSpeed; graphics.TranslateTransform(m_ptCanvasX, m_ptCanvasY); //设置坐标系统的原点 graphics.RotateTransform(rotateAngle); //旋转 graphics.ScaleTransform(showZoom, showZoom); //设置缩放比 graphics.DrawImage(_ShowImage, m_ptBmpX, m_ptBmpY); //在指定位置绘制图像 graphics.ResetTransform(); //重置坐标系(重置为单位矩阵) } else { graphics.Clear(Color.Black); } DrawROI(graphics); GC.Collect();//手动GC回收已经释放的资源 }
这篇关于c#使用Bitmap绘图的时候,内存增大问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具