找回密码
 立即注册

QQ登录

只需一步,快速开始

x1212chf

初级会员

17

主题

35

帖子

355

积分

初级会员

积分
355

活字格认证

x1212chf
初级会员   /  发表于:2015-8-27 10:32  /   查看:7879  /  回复:5
应用场景:
扫描时,实时加载扫描的影像到RasterImageList,以便已缩略图的形式显示扫描影像,扫描影像分
黑白,灰度,彩色,当扫描影像页数很多时(如200页,彩色扫描),系统会抛出以下异常:
System.InvalidOperationException: You have exceeded the amount of memory allowed for RasterImage allocations.
See RasterDefaults::MemoryThreshold::MaximumGlobalRasterImageMemory.
at Leadtools.RasterImage.CreateFromBitmapHandle(IntPtr bitmapHandle, Boolean noFreeOnDispose)
at Leadtools.Codecs.RasterCodecs.DoLoad(LoadParams loadParams)
at Leadtools.Codecs.RasterCodecs.Load(String fileName)

修改对应MaximumGlobalRasterImageMemory属性值,效果不大,除以下2种方法,请问有什么好的办法?
1.分页显示
2.换64位版本dll

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-8-27 15:23:00
沙发
回复 1楼x1212chf的帖子

请问您的实际使用场景是在显示器中一次性显示 200 张图片吗?200张图片是否需要滚动条拖动切换显示?

如果是,可以仅仅加载当前显示的图片,释放掉其它图片。
回复 使用道具 举报
x1212chf
初级会员   /  发表于:2015-8-31 17:12:00
板凳
感谢回复!
是的,显示N张时(一般不会多余200页),肯定会有滚动条,那么拖动滚动条的时候,将隐藏的Item移除掉?(如何移除而不显得怪异呢?)
在扫描时,不停的向RasterImageList添加影像,RasterImageList中影像也可以通过拖动调整顺序,所以没有移除添加后的影像。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-31 17:53:00
地板
回复 3楼x1212chf的帖子

请问您不使用 64 位DLL的原因是什么?
建议您更换64位DLL,这样您的物理内存就不会成为瓶颈,如果出现这个异常就说明内存已经耗尽。

隐藏的Item移除掉可能就不适用于拖拽调整次序这个用例了。
回复 使用道具 举报
x1212chf
初级会员   /  发表于:2015-9-1 09:52:00
5#
好的,知道了,感谢!
由于开发的系统已大规模使用,并使用的是32位的系统,再换成64位的系统,可能很麻烦。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-1 13:37:00
6#
回复 5楼x1212chf的帖子

好的,不客气,有其他问题欢迎继续交流。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部