QT提高图片显示速度
来源:互联网 发布:linux tomcat无法访问 编辑:程序博客网 时间:2024/06/08 14:05
在使用qt3.3.2开发实时系统的图形时,如果我们需要设置图形的背景图,需要使用下面的函数进行绘制:
void QPainter::drawImage ( const QPoint &, const QImage &, const QRect & sr, int conversionFlags = 0 )或者是
void QPainter::drawPixmap ( int x, int y, const QPixmap & pixmap, int sx = 0, int sy = 0, int sw = -1, int sh = -1 )
如果你在绘制大的背景图时使用了drawImage()函数,你将会发现背景图刷新的速度会比较慢,这一点在qt的文档中也进行了说明:
There are functions to draw pixmaps/images, namely drawPixmap(), drawImage() and drawTiledPixmap(). drawPixmap() and drawImage() produce the same result, except that drawPixmap() is faster on-screen and drawImage() faster and sometimes better on QPrinter and QPicture.
还有在drawImage()函数的说明中:
This function may convert image to a pixmap and then draw it, if device() is a QPixmap or a QWidget, or else draw it directly, if device() is a QPrinter or QPicture.
所以我们要做的第一步就是要把程序中使用drawImage()函数的地方转化为drawPixmap();
Ok,完成了上面的第一步之后,背景图刷新快多了,但出现了第二个问题又出现了,将QImage转换为QPixmap或者直接将图形加载为QPixmap依然很慢,这样就造成第一次打开某个图形文件时,背景图的加载会变得比较慢(当然,打开后只需要drawpixmap,就会比较流畅了),为了解决这个问题,我们设置如下结构:
Struct file2qpixmap
{
Char filename[256];
QPixmap qpixmap;
};
将背景图片文件与相应的QPixmap数据结合起来做成一个全局的链表,每次打开图形文件后到链表中查找相应的背景图形对应的QPixmap数据是否已经存在,如果存在则直接使用,如果不存在,就插入一个新的节点.这样,对于使用同一副背景图片的图形文件而言,背景图形的QPixmap数据只需要加载一次.这样就再一次提高了图形文件刷新和切换的速度.
更进一步,我们可以把上述链表的内容写入内存映射文件或者数据库,每次程序启动的时候只需要将链表映射到当前程序的内存中就可以使用了,这样就进一步加快了背景图形的刷新,而且这样跳开了对qpixmap数据的加载.但这种方法我没有进行测试,有兴趣的朋友可以试一下.
转自:http://blog.chinaunix.net/u/16886/showart_235149.html
- QT提高图片显示速度
- 图片显示速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高SQLite的读写速度
- Qt中提高sqlite的读写速度
- qt预编译 提高编译速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- Qt中提高sqlite的读写速度
- 提高页面显示速度的秘技
- 加快activity显示速度,提高用户体验
- 如何提高页面的显示速度
- 加快activity显示速度,提高用户体验
- 加快activity显示速度,提高用户体验
- 提高页面加载速度之图片优化
- 提高iPhone应用程序绘制图片速度
- 以太网交换机常用的功能及协议
- 一些对CSS3开发人员非常有用的工具
- 进一步解释:消息和任务
- 评教模块编码结束--项目感受
- poj1011sticks题解
- QT提高图片显示速度
- SSL与TLS
- 详解MySql配置文件 my.ini
- Proxy代理设计模式
- JQuery中几种特殊的符号$、!、@、^浅析
- trac 0.12 开启国际化支持,让其显示中文
- 这里好温暖
- 一个web项目的名字
- emacs学习(2) 基本模式和编辑特性