[Qt] Modifier la taille d'une image

Modifier la taille d'une image [Qt] - C++ - Programmation

Marsh Posté le 15-09-2011 à 10:52:23    

Bonjour à tous,
 
Je souhaite faire la modification d'image et que ça fonctionne instantannément. Pour les petites images, de taille genre 500x300 ça marche parfaitement, mais pour des photos plus grosses, ça rame. J'aimerais donc pouvoir créer, à partir de mon image d'origine, une image avec moins de pixels. J'ai déjà essayé la fonction resize(QSize) sur le QLabel qui contient ma QImage, mais cette fonction rogne l'image et la fonction resize(QSize) sur ma QImage mais mon application plante lorsque je veux modifier mon image (en plus lorsque je lui demande des valeurs de la taille de l'image, elles sont erronées, pas facile de travailler sur les Pixel avec...)
 
J'ai également trouvé sur Internet la fonction QImage QImage::smoothScale( int w, int h, ScaleMode mode = ScaleFree ) . Elle était disponible sur Qt 3.3 (voir http://doc.trolltech.com/3.3/qimage.html) mais ne l'est plus maintenant.
 
En vous remercient par avance pour votre aide.
 
 
Masbath.

Reply

Marsh Posté le 15-09-2011 à 10:52:23   

Reply

Marsh Posté le 15-09-2011 à 11:06:31    

Si la taille de pix2 n'est pas trop petite par rapport à la taille de pix1
 
QPixmap pix1("c:\toto.jpg" );
QPixmap pix2=pix1.scaled(QSize(taille1,taille2),Qt::IgnoreAspectRatio);
 
je trouve que ça marche bien.
 
 
ton QLabel il prend un QPixmap, pas une QImage


Message édité par GrosBocdel le 15-09-2011 à 11:09:40
Reply

Marsh Posté le 15-09-2011 à 11:55:03    

D'abord, merci d'avoir pris le temps de me répondre.
 
En effet, mon QLabel contient un QPixmap, mais j'ai créé une QPixmap à par partir de ma QImage ( avec (QPixmap::fromImage(*pImagePetite))).
Je ne pense pas qu'on puisse manipuler les pixels à partir d'une QPixmap, c'est pour ça que je préfère utiliser la fonction scaled sur une QImage.
 
Sinon, oui, l'affichage fonctionne correctement, néanmoins le problème de plantage persiste lorsque je veux modifier instantanément une image (avec un QSlider ou un bouton).

Reply

Marsh Posté le 15-09-2011 à 13:02:52    

Masbath1 a écrit :

D'abord, merci d'avoir pris le temps de me répondre.
 
En effet, mon QLabel contient un QPixmap, mais j'ai créé une QPixmap à par partir de ma QImage ( avec (QPixmap::fromImage(*pImagePetite))).
Je ne pense pas qu'on puisse manipuler les pixels à partir d'une QPixmap, c'est pour ça que je préfère utiliser la fonction scaled sur une QImage.
 
Sinon, oui, l'affichage fonctionne correctement, néanmoins le problème de plantage persiste lorsque je veux modifier instantanément une image (avec un QSlider ou un bouton).


 
Faudrait voir ton code car je vois mal ce problème venir de Qt lui même.

Reply

Marsh Posté le 15-09-2011 à 16:18:38    

Mon code est trop long pour le poster ici, je vais continuer de chercher de mon côté. Si je ne trouve pas d'intermédiaire, je scinderai mon code pour le poster ici. ;)
 

Reply

Marsh Posté le 15-09-2011 à 16:48:02    

J'ai changé l'image réduite à modifier de *QImage en QImage et ça a l'air de fonctionner.
Merci pour tes réponses GrosBoc

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed