[PyQt4] QPixmap load

Fermé
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 - Modifié par zelos666 le 12/04/2010 à 21:54
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 - 13 avril 2010 à 19:24
Bonjour,
Je travaille en Python avec Qt et mon chargement d'image ne se fait pas.

Je vais chercher le chemin de l'image:
self.br = QtGui.QFileDialog.getOpenFileName(None, "Choisir une image (Bande rouge)", "C:", ("Image (*.png; *.jpg; *.jpeg)"))


Ensuite, je crée mon QPixmap:
imPIR = QtGui.QPixmap(self.pir)


Puis, je véréfie si je peut charger l'image:
picPIR = imPIR.load(self.pir)  
if picBr:  
        self.txtPIR.setText("lol")  

else:  
        self.txtPIR.setText("wtf!?")


Il m'affiche toujours "wtf!?" .

Je peux préciser que j'ai tester autant avec des jpg que des png.

<edit>
Petite nouveauté, je vien de changer pour QImage donc si vous quelqu'un à la solution pour QImage ou QPixmap, les deux seront appréciés.
</edit>

Google is your friend.
Wiki is your brain.

6 réponses

zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
13 avril 2010 à 13:55
up
0
Je ne connais pas du tout Qt mais a priori si tu as toujours "wtf!?" à l'affichage c'est que tu ne remplis jamais la condition

if picBr:  
        self.txtPIR.setText("lol")


Pourrais tu me dire à quoi correspond picBr? est-ce une variable? si oui où est elle définie?
Ne manques-t-il pas une condition genre "if picBr == XXXX"
0
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
Modifié par zelos666 le 13/04/2010 à 17:14
Salut,

picBr ses une variable que je définie bool. Je la défini au début de ma fonction.

picBr = False

puisque la fonction load() return True ou False si l'image a été charger correctement.

J'ai continuer mes recherche et j'ai peut être découvert quelque chose bien que cela soit assez vague pour moi. Est-ce possible que ma version de Qt (4.6) n'inclus pas les fichier qjpeg.dll? Si quelqu'un à déjà rencontrer se problème, peut-être connait-il ses dll.
Google is your friend.
Wiki is your brain.
0
ton problème est normal: tu attribus False à picBr et tu la modifie pas donc tu te retrouve toujours dans la boucle "else"

ta fonction load() retourne True/False mais tu l'attribus pas à picBr mais à picPIR

donc si tu changes le nom de la variable:
picBr = imPIR.load(self.pir)

ça doit fonctionner non?

Sinon essaie:
picPIR = imPIR.load(self.pir)  
if picBr != picPIR:  
        self.txtPIR.setText("lol")  

else:  
        self.txtPIR.setText("wtf!?")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
Modifié par zelos666 le 13/04/2010 à 19:21
Je me suis tromper dans l'écriture mais je l'attribut quand même à la bonne variable. J'ai prit les deux différente car j'ai deux vérifications à faire, la bande rouge d'une image RGB et une image pir (proche infrarouge). Désolé d'avoir inverser les variables lors de mes précédent post. Sinon la vérification est identique pour les 2.
Google is your friend.
Wiki is your brain.
0
zelos666 Messages postés 181 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 20 juillet 2010 12
Modifié par zelos666 le 13/04/2010 à 19:25
Désolé pour le double post.

En faisant la vérification des extensions d'image pouvant être lut:
        x = 0 
        format = QtGui.QImageWriter() 
        byteFormat = QtCore.QByteArray() 
        byteFormat = format.supportedImageFormats() 
        strFormat = QtCore.QString() 

        for element in byteFormat: 
            strFormat.append(byteFormat[x]) 
            strFormat.append(" - ") 
            x = x + 1 

        self.txtNom.setText(strFormat)


J'obtient ceci:
bmp - png - ppm - xbm - xpm - 


Donc comme je le disais, je croit qu'il ne voit simplement pas les fichier qjpeg ou quelque chose dans le genre. Mais je comprend tout de même pas pourquoi il ne les voient pas
Google is your friend.
Wiki is your brain.
0