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
17int 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.







Consultez nos FAQ :
Répondre avec citation
Partager