获取QImage像素坐标

时间:2018-01-12 22:49:57

标签: c++ qt qwidget qimage

我目前使用以下代码将QImage绘制到QWidget:

QPainter c(this);
const QRect& cw = c.window();

c.setRenderHint(QPainter::SmoothPixmapTransform, cw.width() < scale);
c.drawImage(cw, image);

现在的问题是图像已经适当缩放以适应QWidget,我想根据QWidget坐标获取QImage上的像素坐标。没有缩放,这将是相当微不足道的,因为小部件像素直接对应于QImage坐标。最终,在缩放时转换QWidget上的哪个像素对应于QImage中的像素的方法是理想的。任何建议都非常感谢!

1 个答案:

答案 0 :(得分:1)

您实施的内容是升级,以恢复我们可以使用的坐标QTransform,如下所示:

QTransform tr;
tr.scale(image.width()*1.0/cw.width(), image.height()*1.0/cw.height());
QPoint imagePoint = tr.map(widgetPoint);