2012-05-07 122 views
-3

我需要写一个std::vector<double>值到qGraphicsScene。 (值在0-1之间,每个元素表示一个像素 - 灰度) 后来我想访问图像的像素以替换颜色(我没有时间替换整个图像) thx。为了答案!QT绘制像素到图形场景

+1

这是什么问题? – Anthony

回答

2

如果你想要做这样的低级修改,我建议看看QImage类。诸如QImage :: setPixel之类的成员将允许您访问单个像素进行修改。

如果您需要这种功能上QGraphicsScene,那么你可以画到QImage的,然后将其转换成一个的QPixmap(带的QPixmap :: convertFromImage),用于与QGraphicsPixmapItem,然后放置QGraphicsPixmapItem冒头。

你可能想看看通用的Qt容器,比如QVector。

+0

这个效果很好,如果我加载整个图像,但有没有任何解决方案后,我已经加载场景访问像素? – Denes

+0

一种快速而肮脏的方法会将QImages存储在某些数据结构中('QHash '?我不确定您的需求是什么)。当你需要编辑时,编辑'QImage',然后在适当的项目上将'QPixmap'设置为编辑的'QImage'。虽然这种方法可能存在效率缺陷,取决于实施。您可能会从阅读[Qt的隐式共享](http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html)机制中受益。 –

+0

Denes,这是否帮助你,是一个合适的答案?如果是这样,请将您的问题标记为已回答。 –