プロが教えるわが家の防犯対策術!

VSCodeでプログラミングしているのですが、画像を読み込んでくれません、他に必要な拡張機能などあるのでしょうか?

コードは以下です。

import tkinter

key = ""

def key_down(e):
global key
key = e.keysym

def key_up(e):
global key
key = ""

cx = 400
cy = 300

def main_proc():
global cx,cy
if key == "UP":
cy = cy-20
if key == "DOWN":
cy = cy + 20
if key == "LEFT":
cx = cx - 20
if key == "RIGHT":
cx = cx + 20

canvas.coords("MYCHR",cx,cy)
root.after(100,main_proc)


root = tkinter.Tk()
root.title("キャラクターの移動")
root.bind("<KeyPress>",key_down)
root.bind("<KeyRelease>",key_up)

canvas = tkinter.Canvas(width = 800,height = 600,bg = "lightgreen")

canvas.pack()


img = tkinter.PhotoImage(file = "mimi.png") <<ここの部分でエラーが出ます。
「couldn't recognize data in image file "mimi.png と出ます』



canvas.create_image(cx,cy,image = img,tag= "MYCHR")

main_proc()
root.mainloop()

A 回答 (4件)

> idleではエラーがなく、vscodeはエラーが出ます。



おかしいですねぇ。
こっちでもVScodeインストールしてみたんですが、全く問題なく表示されます・・・Linuxですが。
AppleとMicrosoftが仲が悪いから表示されない?んな馬鹿な(笑)。
(基本的に、Mac OS XはUNIXなんで、Linuxで問題なく動けばMac OS Xでも問題なく動作する筈です・・・確証取れないのは、実はWindowsの方なんですよね)

VScodeの左の方にmimi.pngが表示されていますか?
僕の方だと、プログラムが入ってるディレクトリそのものを読み込んでるんで表示されていますが、ひょっとしてプログラム単体だけ読み込むようにしてたら認識しないかもしれません。
「再投稿です。初MacでPythonの勉強」の回答画像4
    • good
    • 1
この回答へのお礼

ありがとうございます!


おっしゃる通りファイル単体で読み込んでいた為でした!!
無事表示されました!!
本当にありがとうございますm(*_ _)m

お礼日時:2020/08/25 16:28

うん、いや、バグはないですよ。

キチンと表示されています。

ってこたぁ、単に写真のパスが変だ、って事ですね。

img = tkinter.PhotoImage(file = "mimi.png")

ここの

file = "mimi.png"

ですが、これは、貴方の書いたpythonファイルから見て写真(mimi.png)がどの位置にあるか、と言うのを基準にして書きます。
平たく言うと、今現在、mimi.pngってのが貴方の書いたpythonファイルと違うトコに存在してる、って事でしょう。mimi.pngを貴方が書いたPythonファイル(何とか.py)と同じディレクトリに放り込んで下さい。そうすれば上手く表示されるでしょう。
「再投稿です。初MacでPythonの勉強」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます!!

ですが、今確認したところ、同じフォルダに入っていまして。
さっき色々試したのですが、
idleではエラーがなく、vscodeはエラーが出ます。

お礼日時:2020/08/25 16:03

いや、違うか。

インデントが無いんで、インデントを修正したつもりが修正しきれてなかっただけ、か。

コードをこっちの方に貼って、リンクを載せて下さい。

https://ideone.com/

その方がいいな、こりゃ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
リンク貼らせていただきます。

https://shar.es/abe9yW

お礼日時:2020/08/25 15:48

ん?なんかコードがグチャグチャでコピペしても上手く動かないんですが・・・・・・。



このコード正しいですか?
自分で並べ替えてもいいけど、それじゃあ意図したモノとバグが再現出来ないんで・・・・・・。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!