Qt实现屏幕取色器 (放大镜,RGB显示,智能调节)原理

运行效果:

原理:


       首先给整个屏幕覆盖上一层高透明度的无边框窗口(这里我用的颜色为(255,255,255),且透明度为1 (【0,255】))

       通过定时器或线程实时更新鼠标位置,注意不要使用鼠标移动事件,如果通过鼠标移动来触发取色无法对动态视频取色

       通过截图函数,对整个窗口进行截图,其中选择以鼠标为中心的一块矩形,我选取的大小是10*7,而放大镜是100*70,故放大倍数为10,将这部分矩形图形放在放大镜中,且选取鼠标所在位置的像素颜色。

       选取的像素颜色因为有透明窗口的原因会有偏差,需要根据透明度算法恢复原来的颜色

       透明原理:假设B为透明色,透明度为a,A为底部颜色,C为最终显示颜色,255*C=a*B+(255-a)*A

       复原只需要根据公式求A即可

       当鼠标点击时,关闭透明窗口,发送颜色信号即可


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值