新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
图像显示刷新太慢了,有经验的前辈指点
发帖
回复
返回列表
新帖
11836
阅读
11
回复
图像显示刷新太慢了,有经验的前辈指点
[复制链接]
上一主题
下一主题
离线
mpx1983
UID:82624
注册时间
2009-07-24
最后登录
2017-09-14
在线时间
32小时
发帖
24
搜Ta的帖子
精华
0
金钱
240
威望
34
贡献值
0
好评度
24
访问TA的空间
加好友
用道具
新手上路
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2009-11-22
我用qt写了一个功能,显示一幅图像;
然后按下左键拖动鼠标用来调整图像亮度,现在功能已经实现了,但就是卡的非常厉害;
我的鼠标拖动的代码如下:
复制代码
void QtDicomGraphicsView::mouseMoveEvent(QMouseEvent *event)
{
if(m_bLeftButtonDown == TRUE)
{
char* pImageData = m_DicomView->ChangeData(dX*4,dY*7);
if(m_GraphicsImage != NULL)
delete m_GraphicsImage;
m_GraphicsImage = new QImage((uchar*)pImageData, m_DicomView->m_nCols, m_DicomView->m_nRows, m_DicomView->m_nCols, QImage::Format_Indexed8);
m_GraphicsImage->setColorTable(m_colorTable);
if(m_GraphicsPixmap != NULL)
delete m_GraphicsPixmap;
m_GraphicsPixmap = new QPixmap(QPixmap::fromImage(*m_GraphicsImage));// myPixmap(QPixmap::fromImage(*myImage));
m_DicomGraphicsScens->addPixmap(QPixmap(*m_GraphicsPixmap));
//m_DicomGraphicsScens->update();
this->update();
//this->repaint();
}
}
我是在每次鼠标移动的响应事件中,出发一次亮度调整,拿到调整后的像素数据,然后生成QImage,在根据QImage生成Qpixmap,用来显示;我是将QPixmap加载到QGraphicsView框架上显示的;
请问刷新显示慢的原因出在了那里??如何才可以很流畅的实现此功能,请有经验的前辈指点
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
dbzhang800
UID:7394
注册时间
2006-06-03
最后登录
2024-05-29
在线时间
9894小时
发帖
5580
搜Ta的帖子
精华
2
金钱
56167
威望
5627
贡献值
20
好评度
5629
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
1楼
发表于: 2009-11-22
这种耗时的操作,至少要开线程来做吧
再就是对moveevent的响应,是不是要控制到每秒不超过24次?
共
条评分
回复
举报
离线
mpx1983
UID:82624
注册时间
2009-07-24
最后登录
2017-09-14
在线时间
32小时
发帖
24
搜Ta的帖子
精华
0
金钱
240
威望
34
贡献值
0
好评度
24
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
2楼
发表于: 2009-11-23
创建线程的意义不大的,因为我是必须拿到调整后的图像才可以显示的,所以他们之间是个串行的关系,没意义开线程;
moveevent的响应次数太频繁了? 为什么要控制在24次?
相同的算法在windows下用vc来实现,非常的流畅;
最大的可能是我没用好qt,查到了一些资料,有个qt官方的文章,说是用GraphicsView+OpenGL来实现
有没有其他前辈给点思路
共
条评分
回复
举报
离线
wqb_lmkj
UID:84779
注册时间
2009-09-15
最后登录
2010-12-15
在线时间
28小时
发帖
8
搜Ta的帖子
精华
0
金钱
80
威望
18
贡献值
0
好评度
8
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
3楼
发表于: 2009-11-23
qt 用的是 帧缓存 ,完全靠CPU 计算,运行的时候CPU占用率100%,同样的问题
共
条评分
回复
举报
离线
kingnight
UID:75165
注册时间
2009-02-23
最后登录
2011-04-22
在线时间
127小时
发帖
133
搜Ta的帖子
精华
0
金钱
1328
威望
134
贡献值
0
好评度
133
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
4楼
发表于: 2009-11-23
能不能不进行QImage到Qpixmap的转换?这个很消耗cpu的,而且不能硬件加速
共
条评分
回复
举报
离线
蛮蛮
UID:9811
注册时间
2006-09-10
最后登录
2011-10-13
在线时间
43小时
发帖
98
搜Ta的帖子
精华
0
金钱
53970
威望
98
贡献值
15
好评度
97
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
5楼
发表于: 2009-11-23
建议不要每次都重新new一个对象,使用loadFromData照理应该好些.
共
条评分
蛮蛮工作室
回复
举报
离线
nmiirq
UID:44347
注册时间
2008-05-15
最后登录
2022-05-21
在线时间
307小时
发帖
460
搜Ta的帖子
精华
0
金钱
4630
威望
462
贡献值
0
好评度
461
访问TA的空间
加好友
用道具
骑士
加关注
发消息
只看该作者
6楼
发表于: 2009-11-23
慢的问题主要是QImage的处理。那个很慢的!
共
条评分
回复
举报
离线
mpx1983
UID:82624
注册时间
2009-07-24
最后登录
2017-09-14
在线时间
32小时
发帖
24
搜Ta的帖子
精华
0
金钱
240
威望
34
贡献值
0
好评度
24
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
7楼
发表于: 2009-11-23
我已经拿到图像的数据部分,也知道图像基本信息(例如宽,高,等),如何可以快速的将其显示到屏幕;
各位说的不要QImage-->QPixmap的转换,或者Qimage很耗时,但如果要避免这个过程我该怎么写代码呢
共
条评分
回复
举报
离线
mpx1983
UID:82624
注册时间
2009-07-24
最后登录
2017-09-14
在线时间
32小时
发帖
24
搜Ta的帖子
精华
0
金钱
240
威望
34
贡献值
0
好评度
24
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
8楼
发表于: 2009-11-26
再顶一下,问题还未解决。。。
共
条评分
回复
举报
离线
zhangxudong
UID:1906
注册时间
2005-11-16
最后登录
2018-01-23
在线时间
7小时
发帖
32
搜Ta的帖子
精华
0
金钱
363
威望
76
贡献值
0
好评度
32
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
9楼
发表于: 2009-11-26
1.调用GraphicsView对象的setViewport(new QGLWidget)使用OpenGL来Render位图。
2.从QGraphicsRectItem派生一个图元,图元的大小和你的Image一样大,重新实现paint接口
void ImageRect::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
painter->drawImage;
}
共
条评分
回复
举报
离线
mpx1983
UID:82624
注册时间
2009-07-24
最后登录
2017-09-14
在线时间
32小时
发帖
24
搜Ta的帖子
精华
0
金钱
240
威望
34
贡献值
0
好评度
24
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
10楼
发表于: 2009-11-27
多谢 zhangxudong 的回复
我尽快按你提供的方法进行下尝试
共
条评分
回复
举报
离线
langzi
UID:77202
注册时间
2009-04-04
最后登录
2014-08-24
在线时间
6小时
发帖
38
搜Ta的帖子
精华
0
金钱
400
威望
49
贡献值
0
好评度
39
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
11楼
发表于: 2011-11-02
这个问题解决了吗?
共
条评分
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选