获取QImage像素坐标
Get QImage pixel coordinates
我目前使用以下代码将 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 中的像素的方法是理想的。非常感谢任何建议!
您实施的是升级,要恢复坐标,我们可以使用 QTransform,如下所示:
QTransform tr;
tr.scale(image.width()*1.0/cw.width(), image.height()*1.0/cw.height());
QPoint imagePoint = tr.map(widgetPoint);
我目前使用以下代码将 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 中的像素的方法是理想的。非常感谢任何建议!
您实施的是升级,要恢复坐标,我们可以使用 QTransform,如下所示:
QTransform tr;
tr.scale(image.width()*1.0/cw.width(), image.height()*1.0/cw.height());
QPoint imagePoint = tr.map(widgetPoint);