halcon 图像控件显示闪烁问题


halcon图像内容在c#环境下显示多个对象容易出现闪烁现象,对于c#控件我们第一时间想到的是双缓冲,halcon提供了另一个机制来解决这个问题

在显示图像开始时候禁用图像显示刷新

HSystem::SetSystem("flush_graphic", "false");

在对象加载完成后,打开刷新,然后显示一个看不见的对象

HSystem::SetSystem("flush_graphic", "true");
SetColor(winID, data->backgroundColor);
DispLine(winID, -100.0, -100.0, -101.0, -101.0);

以上代码其实是c++代码,为了实现halcon对象的显示和滚动缩放等效果,通过cli代理,将c#内的halcon图像对象及文字等转化到c++中,由于c++的hobject对象赋值"="操作并非深度复制,且内部动态管理内存,这样将c#中的hobject对象转化到c++中的对象列表来显示及刷新操作,避免了c#对halcon图像对象的内存管理不力导致内存爆炸等问题.

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM