IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

OSError : Cannot identify image file [Python 3.X]


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut OSError : Cannot identify image file
    Bonjour à tous,
    Dans un programme en python je dois recuperer une image mais j'ai le message d'erreur suivant : Nom : image.PNG
Affichages : 3402
Taille : 166,9 Ko

    Pourtant mon chemin semble bon :
    Nom : index.PNG
Affichages : 3492
Taille : 79,9 Ko

    Comment résoudre ce problème ?
    Merci par avance de vos réponse,
    Florian

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le chemin semble bon, mais... la taille est nulle ("size: 0 bytes")?

    Si ce n'est pas déjà fait, il faudrait voir si l'image s'affiche.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    oui effectivement la taille est nulle mais j'ai essayé avec une autre image dont la taille n'était pas nulle et le résultat reste le même

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Autre piste:

    A ma connaissance, PIL (http://www.pythonware.com/products/pil/) n'existe pas pour le Python v3 que tu as. C'est Pillow (https://pypi.python.org/pypi/Pillow/3.1.1) qu'il faut prendre.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    A ma connaissance, PIL (http://www.pythonware.com/products/pil/) n'existe pas pour le Python v3 que tu as. C'est Pillow (https://pypi.python.org/pypi/Pillow/3.1.1) qu'il faut prendre.
    Pillow est le nom du projet, côté import c'est toujours PIL.
    Par contre, vérifier qu'on peut ouvrir et visualiser ces images avec un outil quelconque permettrait de vérifier qu'elles ne sont pas vérolées.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    Donc il est inutile d'essayer d'import Pillow ?

    J'ai réussi à ouvrir mes images avec la visionneuse Image Viewer donc mes fichiers sont bons :-/

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    Petite info qui j’espère pourra vous aider. Sur l'import de PIL que j'avais d'abord écrit comme suit : " from PIL import Image"

    Lorsque je modifie cet import en " from PIL import *" ou en "import PIL" il me renvoie l'erreur suivante :


    Nom : erreur.PNG
Affichages : 3097
Taille : 16,9 Ko

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par flobos Voir le message
    Donc il est inutile d'essayer d'import Pillow ?
    Vous pouvez essayez: çà ne mord pas! Vous devriez juste obtenir un message d'erreur disant qu'il ne trouve pas Pillow.
    Par contre, après avoir fait "import PIL", un print(PIL.PILLOW_VERSION) devrait confirmer que c'est bien Pillow qui a été installé ainsi que sa version.

    Citation Envoyé par flobos Voir le message
    J'ai réussi à ouvrir mes images avec la visionneuse Image Viewer donc mes fichiers sont bons :-/
    PIL/Pillow ne les considère pas comme bon et pour comprendre "pourquoi", je n'ai pas plus simple que de regarder ce qu'il se passe avec le debugger.
    J'espère que d'autres auront de meilleures idées.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Une idée : installer un éditeur comme spyder qui contient toutes les bibliothèques.
    Ici pour windows : https://sourceforge.net/projects/win...n_3.4/3.4.3.6/
    ou bien ici pour toutes les sources :
    https://bitbucket.org/spyder-ide/spyderlib/downloads
    Pas d'aide par mp.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Une idée : installer un éditeur comme spyder qui contient toutes les bibliothèques.
    A défaut de comprendre d'où vient le problème, on peut essayer de changer de solution!

    Une idée serait de retourner la sortie de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> from PIL import Image
    >>> Image.ID
    ['BMP', 'GIF', 'TIFF', 'JPEG', 'PPM', 'PNG']
    >>> Image.OPEN
    {'PPM': (<class 'PIL.PpmImagePlugin.PpmImageFile'>, <function _accept at 0x00000
    000031122F0>), 'PNG': (<class 'PIL.PngImagePlugin.PngImageFile'>, <function _acc
    ept at 0x000000000312B9D8>), 'GIF': (<class 'PIL.Inimaginable.GifImageFile'>,
    <function _accept at 0x00000000030F4840>), 'BMP': (<class 'PIL.BmpImagePlugin.Bm
    pImageFile'>, <function _accept at 0x00000000030E0048>), 'JPEG': (<function jpeg
    _factory at 0x0000000003112268>, <function _accept at 0x000000000310FAE8>), 'TIF
    F': (<class 'PIL.TiffImagePlugin.TiffImageFile'>, <function _accept at 0x0000000
    0030F52F0>)}
    On aurait déjà idée des différents format d'images supportés par ce qui a été installé.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    Effectivement l'erreur viens de la :-)

    Nom : nothing.PNG
Affichages : 3182
Taille : 31,8 Ko

    Comment faire pour rajouter les données pour avoir une liste d'extensions d'images comme toi ?
    J'ose pas trop faire des append() :-/

  12. #12
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    As-tu vérifié ce que te donnait (après import PIL):

    comme te le proposait wiztricks?

    Le mien donne 2.9.0. Si ça donne une erreur chez toi, c'est que tu n'as pas Pillow mais PIL. Or, PIL n'est pas prévu pour fonctionner avec Python 3, et ça pourrait être la cause de tes problèmes.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par flobos Voir le message
    Comment faire pour rajouter les données pour avoir une liste d'extensions d'images comme toi ?
    J'ose pas trop faire des append() :-/
    Oops... En fait, le module Image.py attend d'en avoir besoin pour remplir ces listes. Effectuez un Image.open(...) et regardez ce qu'ils contiennent après.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  14. #14
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    A défaut de comprendre d'où vient le problème, on peut essayer de changer de solution!
    ...
    - W
    Mon idée était que l'installation était peut-être bugguée et qu'un éditeur avec les bibliothèques intégrées résoudrait peut-être le souci.
    Je dis ça, j'dis rien.
    Pas d'aide par mp.

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    Alors je n'i pas pillow mais j'ai une version PIL pour python3 :

    Nom : pil.PNG
Affichages : 3045
Taille : 18,2 Ko

    Je ne sais pas si ça peut marcher avec celle la mais je l'ai prise sur le Gestionnaire de paquets Synaptic


    Pour le Image.ID et Image.OPEN, ça marche il suffisait de mettre un Image.init() avant :

    Nom : init.PNG
Affichages : 3338
Taille : 314,8 Ko


    Pourtant en ajoutant les Image.init(), Image.ID, Image.OPEN dans mon code avant d'ouvrir l'image mais j'ai toujours la même erreur :-/

  16. #16
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par flobos Voir le message
    Alors je n'i pas pillow mais j'ai une version PIL pour python3
    SI! La version PIL d'Ubuntu est en fait Pillow: on peut le trouver dans la liste des fichiers de python3-pil de synaptic.

    D'ailleurs, sous LinuxMint (Ubuntu), le "PIL.PILLOW_VERSION" renvoie bien la version de Pillow qui est chez moi 2.3.0. Tu gagnerais du temps à faire ce qu'on te propose... Il n'y a donc plus de doute sur la validité de ton programme. Et si tu l'as installé avec synaptic, il n'y a pas de doute sur son installation.

    Citation Envoyé par flobos Voir le message
    Pourtant en ajoutant les Image.init(), Image.ID, Image.OPEN dans mon code avant d'ouvrir l'image mais j'ai toujours la même erreur :-/
    J'ai essayé avec une image à moi (en fait mon avatar: "avatar.jpg"), et ça marche: le im = PIL.Image.open(...) s'exécute sans problème, et L,H=im.size aussi.

    Essaie avec mon avatar! Et décris précisément ce que tu fais: fais un petit code de test qui puisse reproduire le problème et donne-le ici.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    J'ai exactement la même version que toi et aucun problème d'ouverture d'image.

    J'utilise principalement TIFF mais aussi des JPEG et PNG.

    Ouvre toutes tes images en boucle dans un bloc try-except afin de vérifier si il ne s'agit pas d'un soucis ponctuel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import glob
    from PIL import Image
     
    images = glob.glob('chemin/des/images/*.*')
     
    for i in images:
        try:
            img = Image.open(i)
            print('%s : OK' % i)
        except Exception as why:
            print('%s raise: %s' % (i, why))
    Autre chose, on préfère un copier coller plutôt que des captures peu pratiques à l'usage.

  18. #18
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par flobos Voir le message
    Pourtant en ajoutant les Image.init(), Image.ID, Image.OPEN dans mon code avant d'ouvrir l'image mais j'ai toujours la même erreur :-/
    Le but était de voir d'il y avait bien la factory JPEG dans votre mouture de PIL.

    Faites la manip. suggérée par Tyrtamos et postez une de vos images (cet am. j'ai peut être du temps).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    C'est clair qu'on se dirige plutôt vers une erreur sur l'image.
    Pas d'aide par mp.

  20. #20
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    J'ai exactement la même version que toi et aucun problème d'ouverture d'image.

    J'utilise principalement TIFF mais aussi des JPEG et PNG.

    Ouvre toutes tes images en boucle dans un bloc try-except afin de vérifier si il ne s'agit pas d'un soucis ponctuel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import glob
    from PIL import Image
     
    images = glob.glob('chemin/des/images/*.*')
     
    for i in images:
        try:
            img = Image.open(i)
            print('%s : OK' % i)
        except Exception as why:
            print('%s raise: %s' % (i, why))
    Autre chose, on préfère un copier coller plutôt que des captures peu pratiques à l'usage.

    Tout me retourne un ok donc pas de problème avec mes images :/

    Ok c'est noté désolé =)

    EDIT : ton code serait il magique ?
    J'ai exécuté mon programme après et l'erreur a disparu
    Par contre intule de me demande comment je n'en ai aucune idée ...
    Merci tout de même =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/02/2016, 09h27
  2. [FPDF] error: Image file has no extension and no type was specified:
    Par demsbf dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 28/09/2007, 15h47
  3. RMAN - failed to identify sequential file
    Par poc dans le forum Recovery Manager
    Réponses: 0
    Dernier message: 23/07/2007, 11h28
  4. Erreur après compilation : cannot execute binary file
    Par Djo00 dans le forum Administration système
    Réponses: 8
    Dernier message: 21/07/2006, 16h26
  5. Cannot open include file : un grand classique
    Par mamok dans le forum MFC
    Réponses: 3
    Dernier message: 19/12/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo