[Python][Qt4.6] Problème jpg-tiff
Résolu
zelos666
Messages postés
181
Date d'inscription
Statut
Membre
Dernière intervention
-
zelos666 Messages postés 181 Date d'inscription Statut Membre Dernière intervention -
zelos666 Messages postés 181 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Là où je travaille, on m'a demander de créer un plugin dans Quantum GIS, un programme permettant le traitement d'image tiff et geotiff. J'utilise Qt pour faire l'interface et je code ensuite en Python. Le problème ses que je suis incapable de lire les .jpg et les .tiff dans mon code Python, se qui est un peu fâcheux puisque ses les seuls extensions que j'ai à utiliser.
Voilà mon code pour vérifier les extensions:
et mon code pour lire une image:
Bien entendu, la condition est fausse.
Les recherches que j'ai faites sur internet mon mené à comprendre que Quantum GIS ne lit pas les fichier qjpeg4.dll et qtiff4.dll.
Si quelqu'un saurait comment régler le problème se serait très apprécier. Merci.
Google is your friend.
Wiki is your brain.
Là où je travaille, on m'a demander de créer un plugin dans Quantum GIS, un programme permettant le traitement d'image tiff et geotiff. J'utilise Qt pour faire l'interface et je code ensuite en Python. Le problème ses que je suis incapable de lire les .jpg et les .tiff dans mon code Python, se qui est un peu fâcheux puisque ses les seuls extensions que j'ai à utiliser.
Voilà mon code pour vérifier les extensions:
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)
et mon code pour lire une image:
imBr = QtGui.QImage(p) pic = imBr.load(p) if pic: valideBr = True else: self.txtRouge.setText("Impossible de charger l'image.")
Bien entendu, la condition est fausse.
Les recherches que j'ai faites sur internet mon mené à comprendre que Quantum GIS ne lit pas les fichier qjpeg4.dll et qtiff4.dll.
Si quelqu'un saurait comment régler le problème se serait très apprécier. Merci.
Google is your friend.
Wiki is your brain.
A voir également:
- [Python][Qt4.6] Problème jpg-tiff
- Citizen code python avis - Accueil - Outils
- Convertir hevc en jpg - Guide
- Réduire taille jpg - Guide
- Telecharger jpg - Télécharger - Photo & Graphisme
- Convertir jpg en pdf - Télécharger - PDF
6 réponses
Bonjour,
Je ne connais pas Qt et je ne sais pas interfacer deux dispositifs, tels que Quantum GIS et Python dans ton cas.
Mais à la lecture de ton code, il y a des choses qui m'interpellent:
-
On se retrouve donc avec byteFormat qui référence la fonction
QtGui.QImageWriter().supportedImageFormats() :
la seconde ligne ne sert à rien, non ?
- Dans
je vois une "variable" d'itération nommée element qui n'apparaît que dans la pemière ligne, puis il y a byteFormat[x] et x = x + 1 , mais d'où sort x ?
Il semble que tu veuilles itérer sur le contenu de byteFormat
Peut être faut il alors écrire plutôt
ou, en itérant de façon plus pythonienne:
Si tu veux à la fois un élément et son numéro d'ordre dans une liste, pense à la fonction très pratique enumerate()
Il doit êre aussi possible de raccourcir en:
Je ne suis pas capable d'en dire plus.
Nota bene:
si tu pouvais noter que lire deux fois "ses" à la place de "c'est" et "se" à la place de "ce" dans la même phrase est assez éprouvant et contrarie la compréhension, ce serait bien autant pour toi que pour le lecteur
Je ne connais pas Qt et je ne sais pas interfacer deux dispositifs, tels que Quantum GIS et Python dans ton cas.
Mais à la lecture de ton code, il y a des choses qui m'interpellent:
-
format = QtGui.QImageWriter() byteFormat = QtCore.QByteArray() byteFormat = format.supportedImageFormats()
On se retrouve donc avec byteFormat qui référence la fonction
QtGui.QImageWriter().supportedImageFormats() :
la seconde ligne ne sert à rien, non ?
- Dans
for element in byteFormat: strFormat.append(byteFormat[x]) strFormat.append(" - ") x = x + 1
je vois une "variable" d'itération nommée element qui n'apparaît que dans la pemière ligne, puis il y a byteFormat[x] et x = x + 1 , mais d'où sort x ?
Il semble que tu veuilles itérer sur le contenu de byteFormat
Peut être faut il alors écrire plutôt
for x in xrange(len(byteFormat)): strFormat.append(byteFormat[x]) strFormat.append(" - ")
ou, en itérant de façon plus pythonienne:
for element in byteFormat: strFormat.append(element) strFormat.append(" - ")
Si tu veux à la fois un élément et son numéro d'ordre dans une liste, pense à la fonction très pratique enumerate()
Il doit êre aussi possible de raccourcir en:
for element in byteFormat: strFormat.append(element + " - ")
Je ne suis pas capable d'en dire plus.
Nota bene:
si tu pouvais noter que lire deux fois "ses" à la place de "c'est" et "se" à la place de "ce" dans la même phrase est assez éprouvant et contrarie la compréhension, ce serait bien autant pour toi que pour le lecteur
Merci de tes conseils, et désolé des fautes grammaticales.
Je n'essaie pas d'itérer le contenue de byteFormat. J'ai codé ce petit bout de code rapidement qui ne sert qu'à afficher les extensions pouvant être utilisées. J'aurais surement utilisé ta façon, mais j'ai pas trop pensé à ce que je programmais et de toute façon, ce code n'est pas utile à mon programme.
En gros voilà ce que cela m'affiche:
Comme tu peut le constater, il n'y a pas les extensions jpg, jpeg, jfif et tif.
Donc merci des clarifications sur l'affichage des extensions, mais mon véritable problème n'est pas là puisque ce bout de code n'est vraiment pas utile à mon programme. Mon véritable problème est que Quantum GIS (ou est-ce un problème avec gdal?) n'arrive pas à trouver les dll permettant la lecture des jpg et tif.
<edit>
Il est écrit dans les spécifications d'installation de Quantum GIS que l'ont doit avoir Qt 4.3, alors que moi j'utilise Qt 4.6. Si quelqu'un connait un moyen de télécharger une version antérieur de Qt pour tester, ce serait apprécié.
</edit>
Google is your friend.
Wiki is your brain.
Je n'essaie pas d'itérer le contenue de byteFormat. J'ai codé ce petit bout de code rapidement qui ne sert qu'à afficher les extensions pouvant être utilisées. J'aurais surement utilisé ta façon, mais j'ai pas trop pensé à ce que je programmais et de toute façon, ce code n'est pas utile à mon programme.
En gros voilà ce que cela m'affiche:
bmp - png - ppm - xbm - xpm -
Comme tu peut le constater, il n'y a pas les extensions jpg, jpeg, jfif et tif.
Donc merci des clarifications sur l'affichage des extensions, mais mon véritable problème n'est pas là puisque ce bout de code n'est vraiment pas utile à mon programme. Mon véritable problème est que Quantum GIS (ou est-ce un problème avec gdal?) n'arrive pas à trouver les dll permettant la lecture des jpg et tif.
<edit>
Il est écrit dans les spécifications d'installation de Quantum GIS que l'ont doit avoir Qt 4.3, alors que moi j'utilise Qt 4.6. Si quelqu'un connait un moyen de télécharger une version antérieur de Qt pour tester, ce serait apprécié.
</edit>
Google is your friend.
Wiki is your brain.
Voilà! Après trois interminable jours de recherche, je me suis rendu compte que la version de Quantum GIS que j'utilisais ne prenait pas en compte les jpeg et tif. J'ai donc téléchargé la version plus récente (1.4.0 Enceladus) et tout fonctionne correctement:
Merci.
bmp - ico - jpeg - jpg - png - ppm - tif - tiff - xbm - xpm -
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question