• 12235阅读
  • 7回复

Qt取屏幕上任何点的RGB值 [复制链接]

上一主题 下一主题
离线wxyao
 

图酷模式  只看楼主 倒序阅读 楼主  发表于: 2011-04-15
ColorSnapTest.rar (2 K) 下载次数:361


//-----------------------------------
感谢Qtcn的roywillow的帮助:

我做过这方面的东西
我的做法是,获得鼠标在屏幕中的位置(QCursor的某个函数)
然后用grabWindow截取QDesktopWidget,但是截取的范围设为鼠标位置1*1的大小,因为只用到一个点罢了
然后将这个QPixmap转换为QImage,获取这个唯一一点的颜色(我是用scanLine获取的)


我之前是取全屏幕的,grapWindow抓全屏幕用时间挺长的,100多毫秒。改成只抓一个像素,用时不到一毫秒。
[ 此帖被wxyao在2011-04-15 23:39重新编辑 ]
离线roywillow

只看该作者 1楼 发表于: 2011-04-16
=w=不错嘛
其实我用类似的方法还实现了屏幕放大镜,当时是跟这个一起做的
不知道有没有处理鼠标跟随?就是说移动到哪就自动显示哪的颜色
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wxyao

只看该作者 2楼 发表于: 2011-04-16
有处理鼠标跟随的,不过不是监听鼠标移动事件,而是用定时器去定时获取光标的位置。
static QCursor::pos()
[ 此帖被wxyao在2011-04-16 11:45重新编辑 ]
离线hessian
只看该作者 3楼 发表于: 2011-04-16
学习了, 我也准备做这么个东西,再加上个选择范围的尺寸,可以将点选位置的RGB值复制到剪贴板.

刚刚从ksnapshot里把regiongrabber抽了出来研究...嘿嘿
我的新浪微博:http://weibo.com/sseh
离线downstairs

只看该作者 4楼 发表于: 2011-04-17
感谢分享
喜爱编程的猫头鹰
离线andyliang

只看该作者 5楼 发表于: 2011-04-18


离线quser
只看该作者 6楼 发表于: 2011-04-20
回 5楼(andyliang) 的帖子
感谢楼主分享 , 要是能通过鼠标移动事件出发获得坐标就更牛了
离线ltpgt
只看该作者 7楼 发表于: 2012-10-21
    
快速回复
限100 字节
 
上一个 下一个