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

Tkinter Python Discussion :

[Erreur] No such file or directory: 'image.jpg'


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut [Erreur] No such file or directory: 'image.jpg'
    Bonjour,
    je réalise actuellement une interface graphique grâce a Tkinter qui est presque terminée mais j'ai un problème.
    J'ai défini un bouton parcourir pour chercher une image qui sera affichée.
    Sur une ligne de mon programme, j'ai écrit :
    photo = Image.open("image.jpg")

    Quand je lance le programme, j'obtiens une longue erreur :

    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
    return self.func(*args)
    File "F:\InterfaceGraphique.py", line 218, in fenetre_steganographier
    photo = Image.open("image.jpg")
    File "C:\Python33\lib\site-packages\PIL\Image.py", line 1974, in open
    fp = builtins.open(fp, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: 'image.jpg'

    Je ne comprends pas cette dernière ligne car j'ai bien mis une image sous ce nom et sous ce format dans le même dossier que le programme ! WTF !
    SVP
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    Bonjour,
    je réalise actuellement une interface graphique grâce a Tkinter qui est presque terminée mais j'ai un problème.
    J'ai défini un bouton parcourir pour chercher une image qui sera affichée.
    Sur une ligne de mon programme, j'ai écrit :
    photo = Image.open("image.jpg")

    Quand je lance le programme, j'obtiens une longue erreur :

    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
    return self.func(*args)
    File "F:\InterfaceGraphique.py", line 218, in fenetre_steganographier
    photo = Image.open("image.jpg")
    File "C:\Python33\lib\site-packages\PIL\Image.py", line 1974, in open
    fp = builtins.open(fp, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: 'image.jpg'

    Je ne comprends pas cette dernière ligne car j'ai bien mis une image sous ce nom et sous ce format dans le même dossier que le programme ! WTF !
    SVP
    Merci
    Bonjour,

    Pouvez-vous publier le code en entier, svp, que l'on puisse tester/vérifier de notre côté ?

    EDIT:

    En attendant, ajoutez puis testez cette portion de code JUSTE AVANT photo = Image.open("image.jpg") (et dans le même bloc d'instructions, même indentation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import os, os.path as OP
    print("current dir:\t", OP.abspath(os.getcwd()))
    print("app dir:\t", OP.abspath(OP.dirname(__file__)))
    photo = Image.open("image.jpg")
    Si vous n'obtenez pas le même chemin dans current dir et dans app dir, c'est que la boîte de dialogue d'ouverture de fichiers a déplacé le CWD (Current Working Directory).

    Dans ce cas, vous devriez utiliser une fonction normaliser_fichier(chemin_fichier) qui retourne le chemin absolu d'un fichier à partir de son emplacement relatif, par rapport au répertoire du script qui l'exploite.

    @+.
    Dernière modification par Invité ; 11/05/2014 à 13h08.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Je souhaiterais afficher une image que l'on a sélectionné via le bouton parcourir.
    Voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    from tkinter import *                         
    from PIL import Image, ImageTk  
    from tkinter.filedialog import askopenfilename  
     
    def parcourirImage(canvas):
        global image
        image_precedement_ouverte = canvas.find_withtag("image")
        canvas.delete(image_precedement_ouverte)
        lien = askopenfilename(filetypes = [("JPG","*.jpg"),("PNG","*.png"),("JPEG","*.jpeg"),("GIF","*.gif")])
        image = Image.open(lien)
        image_affichée = ImageTk.PhotoImage(image)
        affiche(image_affichée,canvas)
        return 
     
    def affiche(i,canvas):
        canvas.create_image(0,0,anchor=NW, image=i, tags= "image")
        return
     
    fenetre = Tk()
     
    photo = Image.open("image.jpg")
    image = photo
    global image
    photo.thumbnail((480, 350), Image.BICUBIC)
    photo_affichée = ImageTk.PhotoImage(photo)
    canvas = Canvas(fenetre,width=480,height=350,bg='#00ff00')
    canvas.pack()
    Button(fenetre, text="Ouvrir l'image par défaut", command=lambda : affiche(photo_affichée, canvas)).pack()
    bouton_parcourir = Button(fenetre, text="Parcourir ...",command=lambda: parcourirImage(canvas)).pack()
     
    fenetre.mainloop()

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    Je souhaiterais afficher une image que l'on a sélectionné via le bouton parcourir.
    Voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    from tkinter import *                         
    from PIL import Image, ImageTk  
    from tkinter.filedialog import askopenfilename  
     
    def parcourirImage(canvas):
        global image
        image_precedement_ouverte = canvas.find_withtag("image")
        canvas.delete(image_precedement_ouverte)
        lien = askopenfilename(filetypes = [("JPG","*.jpg"),("PNG","*.png"),("JPEG","*.jpeg"),("GIF","*.gif")])
        image = Image.open(lien)
        image_affichée = ImageTk.PhotoImage(image)
        affiche(image_affichée,canvas)
        return 
     
    def affiche(i,canvas):
        canvas.create_image(0,0,anchor=NW, image=i, tags= "image")
        return
     
    fenetre = Tk()
     
    photo = Image.open("image.jpg")
    image = photo
    global image
    photo.thumbnail((480, 350), Image.BICUBIC)
    photo_affichée = ImageTk.PhotoImage(photo)
    canvas = Canvas(fenetre,width=480,height=350,bg='#00ff00')
    canvas.pack()
    Button(fenetre, text="Ouvrir l'image par défaut", command=lambda : affiche(photo_affichée, canvas)).pack()
    bouton_parcourir = Button(fenetre, text="Parcourir ...",command=lambda: parcourirImage(canvas)).pack()
     
    fenetre.mainloop()
    Fichtre ! Quel savant mélange !

    Essayez de raisonner par étapes et par tâches à accomplir :

    1. d'abord je crée le GUI sans tenir compte du traitement à effectuer (ici, le traitement consiste à afficher les images) ;
    2. je place mon canevas, mes boutons, etc, dans la fenetre GUI ;
    3. j'assigne des tâches simples à mes boutons ;
    4. j'évite autant que possible de recourir inutilement à des lambda: xxx dans mes paramètres command=lambda: xxx ;
    5. je crée une tâche "parcourir", je ne traite que la sélection d'un fichier dans cette tâche ;
    6. je crée une tâche "afficher image à partir d'un chemin de fichier", je ne traite que l'affichage de l'image dans cette tâche ;
    7. je crée une tâche "afficher l'image par défaut" en n'hésitant pas à exploiter l'existant ou ce que j'ai écrit précédemment ;


    Exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    import os.path as OP
     
    from tkinter import *
    from PIL import Image, ImageTk
    from tkinter.filedialog import askopenfilename
     
     
    def parcourir ():
     
        fichier = askopenfilename(
     
            title="Sélectionnez une image",
     
            filetypes=[
                ("Images", "*.jpg"),
                ("Images", "*.jpeg"),
                ("Images", "*.png"),
                ("Images", "*.gif"),
            ],
     
            parent=fenetre,
        )
     
        afficher_image(fichier)
     
    # end def
     
     
    def afficher_image (fichier):
     
        global photo
     
        # on affiche si fichier existe
     
        if OP.isfile(fichier):
     
            photo = Image.open(fichier)
     
            photo.thumbnail((480, 350), Image.BICUBIC)
     
            photo = ImageTk.PhotoImage(photo)
     
            canvas.delete(ALL)
     
            canvas.create_image(0, 0, anchor=NW, image=photo)
     
        else:
     
            # suivi console
     
            print(
                "ERREUR - chemin de fichier non valide : '{0}'"
                .format(fichier)
            )
     
        # end if
     
    # end def
     
     
    def afficher_image_par_defaut ():
     
        # on réutilise ce que l'on a écrit précédemment :
     
        afficher_image("image.jpg")
     
    # end def
     
     
    # interface IHM / GUI
     
    fenetre = Tk()
     
    fenetre.resizable(width=False, height=False)
     
    canvas = Canvas(fenetre, width=480, height=350, bg='#00ff00', highlightthickness=0)
     
    canvas.pack()
     
    Button(
     
        fenetre,
     
        text="Afficher l'image par défaut",
     
        command=afficher_image_par_defaut,
     
    ).pack(side=LEFT, padx=5, pady=5)
     
     
    Button(
     
        fenetre,
     
        text="Parcourir ...",
     
        command=parcourir,
     
    ).pack(side=LEFT, padx=5, pady=5)
     
     
    Button(
     
        fenetre,
     
        text="Quitter",
     
        command=fenetre.destroy,
     
    ).pack(side=RIGHT, padx=5, pady=5)
     
     
    fenetre.mainloop()
    Comme la plupart des élèves ISN, vous avez tendance à vouloir tout résoudre en une seule fois alors que l'analyse dans la programmation, c'est justement découper un problème global en dizaines de petits problèmes spécifiques à résoudre sous forme de tâches simples et élémentaires, les unes après les autres, étape par étape.

    Bon courage.

    @+.
    Dernière modification par Invité ; 11/05/2014 à 15h34.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup !
    Par contre, je voudrais savoir à quoi sert cette ligne "OP.isfile(fichier)" ou plutôt sa signification. Et pourquoi faire un if/else dans cette fonction ?
    Autre chose, est-il possible de centrer l'image ? Y'a t-il une commande directe pour centrer l'image ?
    Sinon j'ai une autre question qui n'est pas sur le même sujet. Savez vous si on peut faire apparaitre un message d'erreur sur notre interface graphique. Je m'explique : sur mon interface, il y a une ligne de saisie (entry) dans laquelle l'utilisateur doit rentrer un nombre de 16 caractères (avec un tiret tous les 4 caractères). Il peut également rentrer ce nombre de manière aléatoire en cliquant sur un bouton qui en génère un directement dans l'entry. Cependant, rien n'empêche l'utilisateur de rentrer un nombre de moins ou de plus de 16 caractères ou sans les tirets. Ainsi j'aimerais qu'un message d'erreur s'affiche si l'utilisateur n'a pas rempli ces conditions mais je ne sais pas du tout comment faire et je ne sais même pas si c'est possible.
    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    Merci beaucoup !
    Par contre, je voudrais savoir à quoi sert cette ligne "OP.isfile(fichier)" ou plutôt sa signification. Et pourquoi faire un if/else dans cette fonction ?
    Quand vous écrivez:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def afficher_image (fichier):
     
        global photo
     
        # on affiche si fichier existe
     
        if OP.isfile(fichier):
    vous définissez une fonction afficher_image() dans laquelle vous passez en paramètre l'argument fichier.

    mais ce n'est pas parce qu'on l'a appelé "fichier" que ce paramètre va subitement gérer les chemins de fichier par magie.

    c'est juste un nom de paramètre. c'est à nous de gérer ce que ce paramètre doit faire.

    or, en entrée de fonction, on ne sait pas dans quel état le paramètre fichier se trouve.

    on doit donc s'assurer au minimum qu'il s'agit bien d'un chemin de fichier avec la méthode os.path.isfile(path) i.e. OP.isfile(fichier).

    documentation : https://docs.python.org/3/library/os...os.path.isfile

    le if/else est juste là pour tracer si quelque chose se passe mal.

    par exemple, si l'utilisateur clique sur le bouton "Parcourir", puis dans le dialogue "Ouvrir une image", il clique sur le bouton "Annuler" --> que va-t-il s'afficher dans la console grâce à notre if/else ?

    Autre chose, est-il possible de centrer l'image ? Y'a t-il une commande directe pour centrer l'image ?
    oui, on peut, avec un petit calcul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    canvas.create_image(canvas.winfo_reqwidth()//2, canvas.winfo_reqheight()//2, anchor=CENTER, image=photo)
    Sinon j'ai une autre question qui n'est pas sur le même sujet. Savez vous si on peut faire apparaitre un message d'erreur sur notre interface graphique. Je m'explique : sur mon interface, il y a une ligne de saisie (entry) dans laquelle l'utilisateur doit rentrer un nombre de 16 caractères (avec un tiret tous les 4 caractères). Il peut également rentrer ce nombre de manière aléatoire en cliquant sur un bouton qui en génère un directement dans l'entry. Cependant, rien n'empêche l'utilisateur de rentrer un nombre de moins ou de plus de 16 caractères ou sans les tirets. Ainsi j'aimerais qu'un message d'erreur s'affiche si l'utilisateur n'a pas rempli ces conditions mais je ne sais pas du tout comment faire et je ne sais même pas si c'est possible.
    Merci
    une solution simple serait d'utiliser tkinter.messagebox pour les messages d'erreur/d'information, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    import tkinter as TK
     
    # pour les messages d'erreur
    import tkinter.messagebox as MB # alias MB pour abréger l'écriture ensuite
     
    # pour saisir le texte de démo
    import tkinter.simpledialog as DLG
     
     
    def demo ():
     
        texte = DLG.askstring("SVP", "Veuillez entrer un texte, svp :")
     
        if not texte:
     
            MB.showerror(
                "Attention",
                "Vous n'avez pas saisi de texte !",
                parent=root,
            )
     
        else:
     
            MB.showinfo(
                "Bravo",
                "Vous avez saisi le texte suivant :\n'{0}'".format(texte),
                parent=root,
            )
     
        # end if
     
    # end def
     
     
    # interface IHM / GUI
     
    root = TK.Tk()
     
    TK.Label(root, text="démonstration").pack(padx=20)
     
    TK.Button(root, text="Cliquez ici", command=demo).pack(pady=20)
     
    TK.Button(root, text="Quitter", command=root.destroy).pack()
     
    root.mainloop()
    Documentation messagebox :

    http://infohost.nmt.edu/tcc/help/pub...essageBox.html

    cette documentation date un peu (elle parle encore de tkMessageBox pour Python2) mais elle reste aussi valable pour Python3 dans l'ensemble.

    Documentation simpledialog :

    http://nullege.com/codes/search/tkin...alog?fulldoc=1

    Modules Tkinter :

    https://docs.python.org/3.0/library/tkinter.html

    Une bonne habitude à prendre : Goooooogle est votre ami.

    @+.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Qu'est ce que ca pourrait être à part un fichier ?

    Et que signifie la commande : .winfo_reqwidth() ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    Qu'est ce que ca pourrait être à part un fichier ?
    Et non, justement !

    C'est typiquement le raisonnement qui pousse à l'erreur : il y a une vraie différence entre ce que vous attendez d'un paramètre et ce que le paramètre peut fournir dans la fonction.

    Par exemple, si vous remplacez dans le script le code par celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def afficher_image_par_defaut ():
     
        # on réutilise ce que l'on a écrit précédemment :
     
        afficher_image(None)
     
    # end def
    le code sera juste mais l'exécution du code fera que vous appellerez afficher_image() avec le paramètre fichier=None.

    et c'est exactement la valeur qu'aura le paramètre fichier au moment de l'exécution de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    def afficher_image (fichier):
     
        global photo
     
        # on affiche si fichier existe
     
        if OP.isfile(fichier):
     
            photo = Image.open(fichier)
     
            photo.thumbnail((480, 350), Image.BICUBIC)
     
            photo = ImageTk.PhotoImage(photo)
     
            canvas.delete(ALL)
     
            canvas.create_image(0, 0, anchor=NW, image=photo)
     
        else:
     
            # suivi console
     
            print(
                "ERREUR - chemin de fichier non valide : '{0}'"
                .format(fichier)
            )
     
        # end if
     
    # end def
    à votre avis, que se passera-t-il quand l'ordinateur arrivera à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    photo = Image.open(None)   # puisque fichier=None dans ce cas
    vous comprenez la subtilité entre ce qu'on attend d'un paramètre et ce que le code est susceptible de produire à un moment ou à un autre ?

    Et que signifie la commande : .winfo_reqwidth() ?
    Documentation tkinter :

    http://infohost.nmt.edu/tcc/help/pub...universal.html

    Extrait :

    w.winfo_reqwidth()
    Returns the requested width of widget w, the minimum width necessary to contain w. As with .winfo_reqheight(), the actual width may be different due to negotiations with the geometry manager.
    @+.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Bouton parcourir :
    je ne comprends pas, le programme simple que vous m'avez donné marche parfaitement mais quand je mets les fonctions de mon programme cette fois ainsi ce que les instructions modifiées, j'obtiens un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
        return self.func(*args)
      File "F:\Projet final\Tkinter\InterfaceGraphique.py", line 163, in parcourir
        afficher_image(fichier)
      File "F:\Projet final\Tkinter\InterfaceGraphique.py", line 172, in afficher_image
        canvas.delete(ALL)
    NameError: global name 'canvas' is not defined

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    Bouton parcourir :
    je ne comprends pas, le programme simple que vous m'avez donné marche parfaitement mais quand je mets les fonctions de mon programme cette fois ainsi ce que les instructions modifiées, j'obtiens un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
        return self.func(*args)
      File "F:\Projet final\Tkinter\InterfaceGraphique.py", line 163, in parcourir
        afficher_image(fichier)
      File "F:\Projet final\Tkinter\InterfaceGraphique.py", line 172, in afficher_image
        canvas.delete(ALL)
    NameError: global name 'canvas' is not defined
    Ne vous laissez pas impressionner par le flot des erreurs : quand vous avez un message d'erreur, lisez toujours la dernière ligne en premier, puis remontez le texte à rebours tant que vous ne trouvez pas un indice convaincant.

    A mon avis, la dernière ligne devrait suffire ici :

     NameError: global name 'canvas' is not defined 
    Traduction en français ?

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Le canvas n'est pas défini !
    Même en mettant un global, cela ne fonctionne pas ! (normal)
    Je ne comprends pas j'ai appelé le canvas avant ...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    Le canvas n'est pas défini !
    Même en mettant un global, cela ne fonctionne pas ! (normal)
    Je ne comprends pas j'ai appelé le canvas avant ...
    C'est la variable globale nommée "canvas" qui n'a pas été définie : cela indique généralement que l'on n'emploie pas le bon nom de variable pour l'objet que l'on veut utiliser.

    Quel nom avez-vous donné à votre variable au moment de créer le canevas dans votre script ? canvas, can, can1 ?

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    canvas tout simplement

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    canvas tout simplement
    Pouvez-vous publier le code pour que je vérifie le contexte ?

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    C'est bon ca marche, j'ai simplement défini le canvas dans la fonction !
    Merci

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    C'est bon ca marche, j'ai simplement défini le canvas dans la fonction !
    Merci
    N'oubliez pas de cliquer sur "Résolu". Merci.

    @+.

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

Discussions similaires

  1. [2.x] Warning: rmdir(picture.jpg): No such file or directory in
    Par aitiahcene dans le forum Symfony
    Réponses: 9
    Dernier message: 28/06/2012, 16h01
  2. Accelerator Mode erreur: No such file or directory
    Par socrate88 dans le forum Simulink
    Réponses: 0
    Dernier message: 05/09/2011, 15h14
  3. Réponses: 1
    Dernier message: 03/12/2010, 20h30
  4. Réponses: 9
    Dernier message: 02/04/2010, 14h42
  5. Réponses: 1
    Dernier message: 04/10/2005, 20h01

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