我开始时使用attach("路径%d")按路径名称的循环(CDoc中的函数)完成加载,然后处理,显示(CImg.draw(pDC)函数)。但延迟很严重。
现在考虑如何将多幅bmp图像(路径已知,图像大小已知,8bit bmp图,并且不超过10幅)依次存入内存,然后依次在VIew菜单里显示出来(使用CImg.draw(pDC),不建立对话框),这样延迟应该会很小了。
对于如何存储及显示,请高手指教详细点的代码,先谢过了。
现在考虑如何将多幅bmp图像(路径已知,图像大小已知,8bit bmp图,并且不超过10幅)依次存入内存,然后依次在VIew菜单里显示出来(使用CImg.draw(pDC),不建立对话框),这样延迟应该会很小了。
对于如何存储及显示,请高手指教详细点的代码,先谢过了。
解决方案 »
- * 编程经验: CtreeCtrl 分为2层, 第一层的itemdata用 struct A, 第二层itemdata用 struct B, 之后如何GetItemData正确呢?
- 困扰了2天求爷爷告奶奶都还没有解决的GINA问题,请各位大侠帮忙
- 如何在程序中获得网络连接的名称,如:本地连接、本地连接1、本地连接2
- 求一个API Hook的完整代码例子
- 初学者请教:我想改变窗口的风格,结果说什么指令出错,请帮忙看看!
- 请问: socket(PF_INET,SOCK_STREAM,IPPROTO_TCP)中PF_INET是什么意思?
- 在mainframe上创建了CDialogBar,没有创建它的类,如何把图贴到CDialogBar上
- 为什么我的工程每次F5go的时候,都要重新编译呢?
- 我从CObject继承了一个类CMyIcon,请问如何让它响应鼠标单击和拖动事件?
- 请问大家学习VC++,哪里有好的视频教学,本人发现书本太抽象了
- 大家帮我看看源码,为什么我的SOCKET有时可以成功,有时不成功?
- CListBox 如何使用?
这还不容易?、
方法1:用一个字符串List 来存储你所有需要读取来显示的那些bmp文件完整路径名,然后,在定时器那里,根据你的时间间隔来从这个字符串List里的路径读取进内存再显示。方法2:在程序运行后,先一次性,把所有bmp位图文件的数据都读取到一个内存数组中存储,可以用BYTE pImg[width*height*n] 来存储,其中width、height分别是8位bmp的宽和高,n是你总共需要处理的bmp文件数。当然,这个数组只能存储8位bmp位图的像素数据,
至于位图文件头和位图信息头以及位图的颜色索引表,你需要另外存储,因为都是一样的8位bmp图片,这3部分只要存储一次就可以了。
这个延迟,没办法,是由于你的算法造成的而不是读取文件时造成的。你也知道,不用你的算法时很快的啊。第二种方法,我以前做个一个,就是定时显示某个目录下N张bmp图片中的n个的小程序。也就是,比如,某个目录下有200幅图像,我在定时器里定时显示其中的50幅图像,这50幅图像是随机抽取的。
不知道这个是否符合你的要求。不过是用MFC来实现的,如果对你有用,我可以发给你参考下。
你读一个图片就是一个CImg
你读十个图片就是CImg[10]
至于你怎么处理每一副图片和这个有关系么
{
DECLARE_SERIAL(BMPIO)
}; //存单辐图像那些事情,public CObject必须,否则下面通不过
xxx.cpp
IMPLEMENT_SERIAL( BMPIO, CObject, 1 )CTypedPtrArray < CObArray, BMPIO* > m_DataArray;BMPIO * tmp = new BMPIO ;
m_DataArray.add(tmp);....注意以上红的必须存在,不能忽略
TandyT,邮箱已经发给你了,把代码发给俺学习学习哈,拜谢!~~~
顺便说一句,同时出你头像上的四大神器,看不出你用的哪个hero 哈哈