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

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

ただいまの
回答率

90.61%

  • Python 3.x

    5943questions

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

  • Raspberry Pi

    762questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

RaspberryPi公式ディスプレイ+KivyでのImage表示(*.png)について

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 351

hadami

score 2

 前提・実現したいこと

RaspberryPi 3 ModelB + RaspberryPi公式ディスプレイ + Python3(Kivy1.10.0)
でGUIのアプリケーションを作っています。

画像はKivyのImageで*.pngファイルを読み込み
表示をさせているのですが、画像読み込み処理を
16枚行った時点で画面が真っ白となってしまいます。

作成中のアプリケーションでは全部で25枚の画像ファイルを読み込む必要があるのですが、
上記の縛りから抜け出せずの状態です。

原因がわからず困っております。
お力をお貸しいただけると大変助かります。

 発生している問題・エラーメッセージ

画面が真っ白になってしまう。画面表示が不可なだけで
エラーメッセージもなくアプリケーションも
処理は正常に続行できている

 該当のソースコード

#coding: utf-8

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.graphics import Color,Rectangle

bl = BoxLayout(orientation='vertical')

im1 = Image(source='<<画像ファイルへのパス>> ')
im2 = Image(source='<<画像ファイルへのパス>> ')
im3 = Image(source='<<画像ファイルへのパス>> ')
im4 = Image(source='<<画像ファイルへのパス>> ')
im5 = Image(source='<<画像ファイルへのパス>> ')
im6 = Image(source='<<画像ファイルへのパス>> ')
im7 = Image(source='<<画像ファイルへのパス>> ')
im8 = Image(source='<<画像ファイルへのパス>> ')
im9 = Image(source='<<画像ファイルへのパス>> ')
im10 = Image(source='<<画像ファイルへのパス>> ')
im11 = Image(source='<<画像ファイルへのパス>> ')
im12 = Image(source='<<画像ファイルへのパス>> ')
im13 = Image(source='<<画像ファイルへのパス>> ')
im14 = Image(source='<<画像ファイルへのパス>> ')
im15 = Image(source='<<画像ファイルへのパス>> ')
im16 = Image(source='<<画像ファイルへのパス>> ')

tx1 = im1.texture

wgt1 = Widget()
wgt1.canvas.add(Rectangle(pos=(0,0),texture=tx1,size=(800,480)))
bl.add_widget(wgt1)


class kivy_test001(App):
    def build(self):

        return bl  

#main
if __name__ == '__main__':

    app = kivy_test001()
    app.run()

 試したこと

実際のコードではScreenManegerで複数の画面を切替えるものを作成していますが
画像16枚目を読み込むことで同じ結果になります。

以下のことを試してみましたが、解消されません。。

1.画像ファイルの縮小
2.画像ファイルの種類変更(*.png -> *.jpeg、*.bmp、*.gif)
3.PythonファイルとKvファイルに分け、kvファイルでの画像読み込み
4.Screen切替時(on_leave)にremove_widget()等で都度画像ウィジェットの削除
5.ラズベリーパイのアップデート(sudo apt-get update、sudo apt-get dist-upgrade)
6.Pythonのバージョン切替(3.4.2→3.6.0) 

 補足情報(FW/ツールのバージョンなど)

本体:Raspberry Pi 3 MODEL B
ディスプレイ:Raspberry Pi 公式 7" Touchscreen Display for Pi
OS:Raspbian GNU/Linux 8.0 (jessie)
Python: 3.4.2
kivy:1.10.1.dev0

以下はPythonプログラム起動時のログですが、
特にエラーは発生していません。

[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_18-04-18_33.txt
[INFO   ] [Kivy        ] v1.10.1.dev0, git-67f7dee, 20171130
[INFO   ] [Python      ] v3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO   ] [Window      ] Provider: egl_rpi
[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[INFO   ] [GL          ] Backend used <gl>
[INFO   ] [GL          ] OpenGL version <b'OpenGL ES 2.0'>
[INFO   ] [GL          ] OpenGL vendor <b'Broadcom'>
[INFO   ] [GL          ] OpenGL renderer <b'VideoCore IV HW'>
[INFO   ] [GL          ] OpenGL parsed version: 2, 0
[INFO   ] [GL          ] Shading version <b'OpenGL ES GLSL ES 1.00'>
[INFO   ] [GL          ] Texture max size <2048>
[INFO   ] [GL          ] Texture max units <8>
[INFO   ] [Shader      ] fragment shader: <b'Compiled'>
[INFO   ] [Shader      ] vertex shader: <b'Compiled'>
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [GL          ] NPOT texture support is available
[INFO   ] [OSC         ] using <multiprocessing> for socket
[INFO   ] [ProbeSysfs  ] device match: /dev/input/event1
[INFO   ] [HIDInput    ] Read event from </dev/input/event1>
[INFO   ] [ProbeSysfs  ] device match: /dev/input/event0
[INFO   ] [HIDInput    ] Read event from </dev/input/event0>
[INFO   ] [ProbeSysfs  ] device match: /dev/input/event1
[INFO   ] [MTD         ] Read event from </dev/input/event1>
[INFO   ] [ProbeSysfs  ] device match: /dev/input/event0
[INFO   ] [MTD         ] Read event from </dev/input/event0>
[INFO   ] [ProbeSysfs  ] device match: /dev/input/event1
[INFO   ] [HIDInput    ] Read event from </dev/input/event1>
[INFO   ] [ProbeSysfs  ] device match: /dev/input/event0
[INFO   ] [HIDInput    ] Read event from </dev/input/event0>
[INFO   ] [Base        ] Start application main loop
[INFO   ] [HIDMotionEvent] using <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '>
[INFO   ] [HIDMotionEvent] using <b'HID 413c:3010\x00                                                                                                                                                                                                                                                  '>
[INFO   ] [MTD         ] </dev/input/event1> range position X is 0 - 800
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range ABS X position is 0 - 800
[INFO   ] [MTD         ] </dev/input/event0> range position X is 0 - 0
[INFO   ] [MTD         ] </dev/input/event1> range position Y is 0 - 480
[INFO   ] [HIDMotionEvent] using <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '>
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range ABS Y position is 0 - 480
[INFO   ] [MTD         ] </dev/input/event0> range position Y is 0 - 0
[INFO   ] [HIDMotionEvent] using <b'HID 413c:3010\x00                                                                                                                                                                                                                                                  '>
[INFO   ] [MTD         ] </dev/input/event1> range touch major is 0 - 0
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range ABS X position is 0 - 800
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range position X is 0 - 800
[INFO   ] [MTD         ] </dev/input/event0> range touch major is 0 - 0
[INFO   ] [MTD         ] </dev/input/event0> range touch minor is 0 - 0
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range ABS Y position is 0 - 480
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range position Y is 0 - 480
[INFO   ] [MTD         ] </dev/input/event1> range touch minor is 0 - 0
[INFO   ] [MTD         ] </dev/input/event1> range pressure is 0 - 255
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range position X is 0 - 800
[INFO   ] [MTD         ] </dev/input/event0> range pressure is 0 - 255
[INFO   ] [MTD         ] </dev/input/event0> axes invertion: X is 0, Y is 0
[INFO   ] [HIDMotionEvent] <b'FT5406 memory based driver\x00                                                                                                                                                                                                                                     '> range position Y is 0 - 480
[INFO   ] [MTD         ] </dev/input/event1> axes invertion: X is 0, Y is 0
[INFO   ] [MTD         ] </dev/input/event1> rotation set to 0
[INFO   ] [MTD         ] </dev/input/event0> rotation set to 0

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • coco_bauer

    2018/04/19 21:19

    画像ファイルのサイズ(バイト数)と画像の画素数(横x縦(pixel))は? また、画面が真っ白になるのは起動時ではなく起動後だと思われますが、なにか起動後のエラーがログに出ていませんか?

    キャンセル

  • hadami

    2018/04/20 11:36

    閲覧いただきましてありがとうございます。画素数は800x480、ファイルのサイズは最大のもので387KB程です。またおっしゃる通り画面が真っ白になるのは起動後です。~/.kivy/logsを確認しましたが起動後は特にエラーは出ていませんでした。

    キャンセル

回答 1

check解決した方法

0

元々公式ディスプレイとセットで付属していたSDカードにプリインストールされていたものをそのまま使用していましたので、別途SDカードを購入し最新のRaspbian(Stretch)を書き込みの上再セットアップを行い上記現象の解消に至りました。
原因は不明のままですが、自己解決いたしました。
ご覧になってくださった皆様ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    【kivy】CSVファイルをUTF-8で使用したい

    今まででできたこと ソース内に入力した日本語をGUI上に表示することができました。 TextInputに日本語を入力することはできました。 やりたいこと 「入力」を押すと

  • 解決済

    Python KivyライブラリのImageとPillowは同時に使えない

    問題というほどでもないのですが、KivyライブラリのImageとPillowは同時にimportできないことがわかりました。 自分が考えている原因としては同じImageという単語が

  • 解決済

    [kivy][python]kivyファイルを複数使いたい

    前提・実現したいこと 今、kivyファイルを1枚で作ってます。 ScreenManagerで画面切り替えをできるようにしています。 test.kvの中身が増えてきて、ごちゃごちゃし

  • 解決済

    Kivyを終了させる方法を教えてください

    前提・実現したいこと PythonにKV languageを直書きしています。なので、プログラム自体の終了(Ctrl+Cなど)ではなく、Kivyで作成したアプリのみを終了させる(窓

  • 解決済

    Python Kivy の起動が遅い

    タイトル通りなのですが、kivyの起動が遅いと感じています。 改善する方法はないものでしょうか? どんなに短いコードであったとしても、平均4秒はかかります。 遅いときは10秒かかる

  • 解決済

    (kivy)RecycleViewに組み込んだCheckBoxの状態の取得方法について

    やりたいこと kivyを使用して,ID管理アプリを作成しようとしています. 何かしらの手段によって,現在登録されているIDの一覧を取得・表示し,管理したいと考えています. 現状

  • 解決済

    python3,kivy | idの値が見えない

     前提・実現したいこと TabbedPanel上のButtonを押すとTextInputから値を得る動作を実現するためにidを使おうとしたのですが、どうにも上手くいかず困っておりま

  • 受付中

    openGLで描画したい 色を変えたり、消したり

     前提・実現したいこと 前回もここでまったくわからないopenGLについて質問させていただいたのですが、また質問させていただきたいと思います。 openGLでの描画がしたいと思

同じタグがついた質問を見る

  • Python 3.x

    5943questions

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

  • Raspberry Pi

    762questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。