2012-05-07 8 views
-3

Je dois écrire une valeur std::vector<double> dans un qGraphicsScene. (valeurs entre 0-1, chaque élément représente un pixel - échelle de gris) Plus tard, je veux accéder aux pixels de l'image pour remplacer la couleur (je n'ai pas le temps de remplacer l'image entière) thx. pour la réponse!QT dessiner des pixels sur une scène graphique

+1

Quelle est la question? – Anthony

Répondre

2

Si vous souhaitez effectuer une modification de bas niveau, nous vous recommandons de regarder la classe QImage. Des membres tels que QImage :: setPixel vous donneront accès à des pixels individuels pour les modifier.

Si vous avez besoin de ce type de fonctionnalité sur une QGraphicsScene, vous pourriez attirer l'QImage puis le convertir en un QPixmap (avec QPixmap :: convertFromImage) pour une utilisation avec un QGraphicsPixmapItem, puis placez le QGraphicsPixmapItem sur la scène .

Vous pouvez jeter un oeil aux conteneurs génériques Qt, tels que QVector.

+0

Cela fonctionne bien si je charge l'image entière, mais y at-il une solution pour accéder aux pixels après avoir chargé la scène? – Denes

+0

Une approche rapide et sale stockerait les QImages dans une structure de données ('QHash '? Je ne suis pas sûr de vos besoins). Lorsque vous avez besoin de modifier, éditez le 'QImage', puis définissez le' QPixmap' sur l'élément approprié pour le 'QImage' édité. Bien que cette approche pourrait avoir des inconvénients d'efficacité en fonction de la mise en œuvre. Vous pouvez bénéficier de la lecture des mécanismes [Qt's implicit sharing] (http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html). –

+0

Denes, est-ce que cela vous a aidé, était-ce une réponse appropriée? Si oui, veuillez marquer votre question comme ayant été répondue. –

Questions connexes