Taille et affichage d'une image
Bonjour,
J'ai le code suivant.
Code:
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)); |
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.
J'ai voulu remplacer par
Code:
1 2
|
img=QPixmap::grabWidget(view).toImage(); |
Mon image est plus petite et dans un cadre.
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.