不要把这么大的数据量的图片一次读到内存中,比如你可以创建一个4M的内存,每次只读几张图片的2进制数据这相当于cache
解决方案 »
- 不添加到窗体,动态显示控件ListBox的问题
- 如何判断一个文件是否是EXCEL?急,在线等!!!
- 这个正则怎么写
- (ASP.NET/C#)如何将带属性的xml读入到GridView(不使用xmldatasourse和io)
- 怎么建立一个内存graphics画好一个图片再拷到你的窗口画面?
- 奇怪的UpDate问题,为何直接用字符串赋值就可以,传递TextBox的值给它就不行。哪位C#高手可以解决
- C# 读取Sybase数据库 中文出现乱码
- 进程间通讯问题,内存共享的实现
- 如何使用visual c#studio.net编程环境?
- 怎么无法建立asp.net程序?急急急啊
- combox 数据绑定!!!!
- C#中实现模糊搜索
C#的char占两个字节,C++的char占一个字节。
{
pimage[i * ww * cc + j * cc + g] =
(char)(*(image.GetPixelPtr(i , j)+g) );
}
你仔细检查下这句,一般再大也不提示到内存益处的
很有可能是是你索引或者其它超出。
image.GetPixelPtr(i , j) 是OpenCV中的CVImage类型的函数。在timer_tick运行过程中,内存占用越来越大,然后Out of Memory!
1、CVImage倒是可以支持每通道16bit的图像,不过绝大部分图像的每个颜色是8bit的,是一个C#byte,不是char。
2、有什么特殊原因要把image的像素读到数组中呢?直接用不行吗?特别在timer_tick这种重复调用的情况下,要比较小心。