Bonjour,
J'ai le code suivant.
Je prend le contenu de ma QGraphicsView dans un QImage. Puis je passes l'image en niveaux de gris. Ensuite j'efface la scene et y mets mon QImage. Cela fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 int longueur=scene->sceneRect().width(); int largeur=scene->sceneRect().height(); img=QImage(longueur,largeur,QImage::Format_ARGB32); QPainter painter(&img); scene->render(&painter); for (int boucle_x=0;boucle_x<img.width();++boucle_x) { for (int boucle_y=0;boucle_y<img.height();++boucle_y) { pixel=img.pixel(boucle_x,boucle_y); gris=qGray(pixel); img.setPixel(boucle_x,boucle_y,qRgb(gris,gris,gris)); } } scene->clear(); scene->addPixmap(QPixmap::fromImage(img));
J'ai voulu remplacer par
Mon image est plus petite et dans un cadre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 img=QPixmap::grabWidget(view).toImage();
En recherchant, voila d'ou vient le problème :
La taille de ma scene et de ma view retourne 800x607 ( 607 du au chargement d'une image )
la taille de l'img génerée par grabwidget : 835x440
J'ai trouvé le problème mais pas l'explication. Du coup je garde le code via QPainter.
Si quelqu'un sait pourquoi ça ne marche pas, je suis interessé.
Merci.
Partager