2012-05-07 1 views
-3

std::vector<double> 값을 qGraphicsScene에 써야합니다. (0-1 사이의 값, 각 요소는 픽셀 - 회색 음영을 나타냅니다.) 나중에 색상 교체를 위해 이미지의 픽셀에 액세스하려고합니다 (전체 이미지를 대체 할 시간이 없습니다) thx. 대답은!픽셀을 그래픽으로 그리는 장면

+1

무엇이 문제입니까? – Anthony

답변

2

낮은 수준의 수정을 원할 경우 QImage 클래스를 살펴 보는 것이 좋습니다. QImage :: setPixel과 같은 멤버는 수정을 위해 개별 픽셀에 대한 액세스 권한을 제공합니다. 당신이 QGraphicsScene에 이런 종류의 기능이 필요한 경우

, 당신은 QImage에 그릴 수 다음 QGraphicsPixmapItem와 함께 사용하기 위해 (QPixmap :: convertFromImage 포함) QPixmap에 그 변환 한 다음 장면 위에 QGraphicsPixmapItem를 배치 .

QVector와 같은 일반적인 Qt 컨테이너를 살펴볼 수도 있습니다.

+0

전체 이미지를로드해도 제대로 작동하지만 장면을로드 한 후에 픽셀에 액세스 할 수있는 솔루션이 있습니까? – Denes

+0

신속하고 더러운 접근법은 QImages를 일부 데이터 구조에 저장합니다 ('QHash '? 당신의 필요가 무엇인지 모르겠습니다). 편집이 필요할 때,'QImage'를 편집하고, 편집 된'QImage'에 적절한 항목의'QPixmap'을 설정하십시오. 이 접근법은 구현에 따라 효율성 단점이있을 수 있지만. [Qt의 암시 적 공유] (http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html) 메커니즘에 대한 내용을 읽는 것이 좋습니다. –

+0

Denes,이게 당신에게 도움이 되었습니까, 그게 적합한 답 이었습니까? 그렇다면 질문에 답변으로 표시하십시오. –