【发布时间】:2018-06-22 10:29:12
【问题描述】:
我目前使用以下代码将 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 中的像素的方法是理想的。非常感谢任何建议!
【问题讨论】:
-
您将永远无法恢复确切的像素,因为当您缩放像素时,像素会相乘或相除,也就是说,可以复制或消除一个像素。你可以得到一个与 rgb 值非常相似的像素。
-
什么是
scale? -
scale仅用于检查实际宽度是否小于小部件宽度。所以换句话说,它只是 QImage 的宽度。 -
你想要的是在原始QImage中获得一个近似像素? ——
-
@eyllanesc 是的,我只想知道哪一个大致对应于 QImage。我可能只会使用 1x、2x、3x 比例来避免问题,但我想知道是否有比显而易见的解决方案更好的解决方案。