8008|23

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求救。。使用CXIMAGE同时显示多幅图,内存耗尽 [复制链接]

建立单文档。使用CXIMAGE库,在View中显示多幅图
每幅图均申请一个内存变量CXimage * image,使用CXIMAGE提供的load加载图片,然后显示,当显示到11张后,后面的都不加载了,查看内存,发现只有3M了。
请问,如何使用这个库,同时加载多幅图片,只占用少量内存??

最新回复

每下一张显示一次,显示完了呢?怎么不释放?不需要继续保持在内存中的。 显示刷新会闪是另外的问题。  详情 回复 发表于 2008-7-19 10:23
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
图像处理很耗内存的!
这个应该不好办
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你不会一启动就把全部图都load进来吧?

显示什么load什么!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
现在估计是每申请个CXimage * pImage 该变量会申请大约2M内存?
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
一次只LOAD 一张,切换VIEW时再RELOAD好了. 图片很占内存的.
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

6
 
我是一起动就把所有的图都load进来
我这里这样做的
typedef struct tagJPGInfo {
        CString csPath;                //文件路径和名称
        CxImage * pImage;        //内存指针
        tagTiffInfo() {
          pImage = NULL;
        }
} JPGTRUCT;

CArray m_ViewImageAry;//个数和要显示的图片个数相等

load是CXimage这个库提供的接口 用来加载图片的内容
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
图像读到内存是,其实都是将其恢复成了BMP了,你在电脑上看看一幅BMP压缩成jpg后,两者相差有多大。
WINCE系统一般64MB内存,最多128MB吧。可不像Windows有硬盘做虚拟内存倒来倒去的。所以内存是很宝贵的资源。

最好不要一次性加载那么多,而是处理一个释放一个。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
m_ViewImageAry.getat(i).pImage = load(m_ViewImageAry.getat(i).csPath,1);
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
我现在做的是一次性加载指定文件夹的所有JPG图片 就像在桌面缩略图一样
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
那应该LOAD PREVIEW信息.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
那就加载缩略图,别加载真正的图片。反正也不可能一下子将所有的图片在一屏显示的。当用户点某个缩略图时,再具体load哪个图片了。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
想问下如何加载缩略图?CXImage这个库好像没有提供这个功能?是要引用别的库还是本身就有这用API函数?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

13
 
如果CXImage这个库里没有,你可以考虑ce自己提供的
IImage接口,它可以实现你的效果。

并提供了GetThumbnail的api
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

14
 
仅缩略也难满足要求。
参考了下GOOGLE手机地图,感觉它那做得比较完美。
不知道有没有人知道GOOGLE手机地图显示原理?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 
架构做得好,才是外表后面的真谛。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

16
 
在网上看到说使用离屏技术可以实现,不过没有看到这方面的基础知识,不知道谁有能给点入门介绍或者链接
 
 
 

回复

85

帖子

1

TA的资源

一粒金砂(初级)

17
 
离屏?没听过。高手来讲解下。

双缓冲甚至多缓冲倒是可以考虑。

显示缩略图,再显示一张大图,关闭,再从缩略图中选择显示一张大图。这样就不会吃内存了,速度也可以保证,因为一次只需要显示一张大图。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

18
 
只是效果像缩略图,但是还是要真正的显示。
这里我下载一幅地图,假设分成20个部分,按一定比例在当前屏幕上要显示出来10幅。
如果是加载10个文件的话 ,我这里内存肯定不够。
这里我想 先把这10个文件合成一个,然后在显示;在移动过程中再加载其他需要的图。
为了保证这里不闪烁,先要将显示的图存屏,然后在加载其他图。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

19
 
不知道是不是我问的有问题。
要不这样说,我从服务器下载图片(图片过大,分成10份按顺序传给我),要求每下一张都要显示;
现在我做的是把每张图片都保存为一个文件,然后在显示,这样我每下载完一张图片就要刷新一下,屏幕就会闪烁一下,而且如果加载到10幅的时候 内存耗尽。不知道谁有解决办法?
不知道这样问会不会有问题?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(中级)

20
 
没有人做过类似的么?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表