找回密码
 立即注册
收起左侧

求助:如何在Qt中提取已知坐标的rgb值

5
回复
6983
查看
[复制链接]
累计签到:5 天
连续签到:1 天
来源: 2017-11-16 14:08:35 显示全部楼层 |阅读模式
3Qter豆
求助啊。。我用鼠标左键位置获得了多点的坐标,现在想获得坐标位置的RGB值,不知道该怎么操作。

回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2017-11-16 16:54:31 显示全部楼层
如果是QWidget的子类话使用grab()函数直接在对应位置抓一个1*1大小的QPixmap出来,接下来就很简单了。http://doc.qt.io/qt-5/qwidget.html#grab
如果是QWindow的话可以用toImage()直接转成QImage,剩下的也是很容易的。

点评

正解~~~  详情 回复 发表于 2017-11-17 08:44
正解~~~  详情 回复 发表于 2017-11-17 08:42
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-11-17 08:42:34 显示全部楼层
bycy0801 发表于 2017-11-16 16:54
如果是QWidget的子类话使用grab()函数直接在对应位置抓一个1*1大小的QPixmap出来,接下来就很简单了。http: ...

正解~~~                                       
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-11-17 08:44:34 显示全部楼层
bycy0801 发表于 2017-11-16 16:54
如果是QWidget的子类话使用grab()函数直接在对应位置抓一个1*1大小的QPixmap出来,接下来就很简单了。http: ...

正解~~~                                                                                                                                                                                                            
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-11-17 09:17:59 显示全部楼层
这个我刚好做过。
QColor pixel(m_img.pixel(QCursor::pos()));
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2017-11-18 16:14:33 显示全部楼层

您好能帮我看下码。。。现在问题是我抓取窗口后 显示只有两种结果。。一种是窗口左上角区域的点240,240,2  一种是其他部位的点是0,0,0  我设置的点像素应该是155,155,155.。所以感觉哪里有问题
代码:QScreen *screen = QGuiApplication::primaryScreen();
    QPixmap pixmap = screen->grabWindow(QWidget::winId(),array[0],array[1],-1,-1);
    QImage image = pixmap.toImage();
    QColor color1 = image.pixel(array[0], array[1]);
    ui->label_11->setText(tr("%1,%2,%3").arg(color1.red()).arg(color1.blue()).arg(color1.green()));
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了