質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

17853閲覧

【Python】ImageTk.PhotoImageで画像の表示が出来ない

Yoshi-Koyama

総合スコア23

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/09/09 07:14

###実現したいこと
ある本を買って簡単なゲームを作っています。
ただ、パスにある画像ファイルを表示したいのですが、画面に表示されません。
質問になれていないため至らない点もあるかと存じますが、解決法をご教示頂ければ幸いです。
###前提条件
ソースコードファイル名:chap4-2.py
画像パス:img4/chap4-1-1.png

###発生している問題・エラーメッセージ
特にエラーは表示されません

$ python chap4-2.py tuba-no-MacBook-Air:12saipython tuba$

###実行時に表示される画面
イメージ説明
本来は"王様『魔王を倒したら褒美をやるぞ!]"の下に画像が表示されるはずなのですが、、、
###該当のソースコード

import tkinter from PIL import Image, ImageTk root=tkinter.Tk() root.title("Summon the hero!") root.minsize(640,480) root.option_add("*font",["メイリオ",14]) canvas=tkinter.Canvas(root, width=640,height=480) canvas.place(x=0,y=0) img1 = ImageTk.PhotoImage(file='img4/chap4-1-1.png') img2 = ImageTk.PhotoImage(file='img4/chap4-1-2.png') img3 = ImageTk.PhotoImage(file='img4/chap4-1-3.png') canvas.create_image(320,220,image=img1,tag="illust") serihu_text=tkinter.Label(text= \ "王様「魔王を倒したら褒美をやるぞ!」") serihu_text.place(x=160,y=10) sys_text=tkinter.Label(text="褒美はいくらあげますか?",fg="red") sys_text.place(x=180,y=300) entry=tkinter.Entry(width=12) entry.place(x=180,y=420) gold_text=tkinter.Label(text="ゴールド") gold_text.place(x=110,y=420) button=tkinter.Button(text="決定") button.place(x=420,y=420) root.mainloop()

###試したこと

  • 画像パスの確認
  • パイソンのバージョン確認

###補足情報(言語/FW/ツール等のバージョンなど)
エディタ:Visual Studio Code
OS:macOS Sierra
python version:3.6.2
参考図書:12歳からはじめる0からのPython

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

おはようございます。

問題文読ませていただきました。

画像特有の問題の可能性が高いですので、以下の手順でご確認いただけますか?

  1. その他の画像パスで検証してみる。
  2. 以下のソースコードを元に、「こちら問題の画像パスをご入力ください。」部分を変更して検証いただく。
  3. canvas optionにbg='red'を追記して、画像が確認できるか検証いただく。

python

1import tkinter 2from PIL import Image, ImageTk 3 4# Windowを作成する。 5root = tkinter.Tk() 6 7# Windowへタイトルをつける。 8root.title("Summon the hero!") 9# Windowの最小サイズを設定する。 10root.minsize(640, 480) 11# Windowへfontの設定を行う。 12root.option_add("*font", ["メイリオ", 14]) 13 14# Windowを親要素としてcanvas Widgetを作成する。 15# width : 幅の設定 16# height : 高さの設定 17# Canvasについて : https://kuroro.blog/python/V63iINoXI8iwMeRMEJPK/ 18canvas = tkinter.Canvas(root, width=640, height=480) 19# Windowを親要素として、canvas Widgetをどのように配置するのか? 20# placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ 21canvas.place(x=0, y=0) 22 23# こちら問題の画像パスをご入力ください。 24# convert, pointについて(参考): https://qiita.com/pashango2/items/145d858eff3c505c100a 25# 画像について : https://kuroro.blog/python/Z7k1LSyDyiDHtD5UCjmG/ 26img1 = ImageTk.PhotoImage(Image.open('/xxx/xxx.png').convert("L").point(lambda x: 0 if x < 230 else x)) 27 28# 画像を表示する。 29# Canvasについて : https://kuroro.blog/python/ANyM9WLpd0LSXRQAELOj/ 30# 第一引数 : x座標 31# 第二引数 : y座標 32# image : 画像パス 33# tag : 図形へタグ付けを行う。 34canvas.create_image(320, 220, image=img1, tag="illust") 35 36# Windowを親要素としてlabel Widgetを作成する。 37# text : テキストの設定 38# Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 39serihu_text = tkinter.Label(root, text="王様「魔王を倒したら褒美をやるぞ!」") 40# Windowを親要素として、label Widgetをどのように配置するのか? 41# placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ 42serihu_text.place(x=160, y=10) 43 44# Windowを親要素としてlabel Widgetを作成する。 45# text : テキストの設定 46# fg : 文字列色の設定 47# 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/ 48# Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 49sys_text = tkinter.Label(root, text="褒美はいくらあげますか?", fg="red") 50# Windowを親要素として、label Widgetをどのように配置するのか? 51# placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ 52sys_text.place(x=180, y=300) 53 54# Windowを親要素としてentry Widgetを作成する。 55# width : 幅の設定 56# Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ 57entry = tkinter.Entry(root, width=12) 58# Windowを親要素として、entry Widgetをどのように配置するのか? 59# placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ 60entry.place(x=180, y=420) 61 62# Windowを親要素としてlabel Widgetを作成する。 63# text : テキストの設定 64# Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ 65gold_text = tkinter.Label(root, text="ゴールド") 66# Windowを親要素として、label Widgetをどのように配置するのか? 67# placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ 68gold_text.place(x=110, y=420) 69 70# Windowを親要素としてbutton Widgetを作成する。 71# text : テキストの設定 72# Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ 73button = tkinter.Button(root, text="決定") 74# Windowを親要素として、button Widgetをどのように配置するのか? 75# placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ 76button.place(x=420, y=420) 77 78# Windowをループさせて、継続的にWindow表示させる。 79# mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/ 80root.mainloop()

よろしくお願いいたします。????‍♂️

投稿2021/07/10 23:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

同じ問題で悩んでいる人を見つけました。
自己解決です。
参考:
https://teratail.com/questions/85640

投稿2017/09/09 07:28

Yoshi-Koyama

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問