2017-08-23 3 views
0

RPiにアプリケーションを転送していますが、コードの実行中にpython(3)を使用してフルスクリーン画像を表示する方法が必要です。私は、TkinterやPygameのような複雑なGUIモジュールを掘り下げることを避けたいと思います。私はちょうど画面を満たし、コードがそれらを置き換えるまでそこにとどまるイメージを望んでいるか、または彼らに去るように言います。 TkinterやPygameがこれを行うことができれば、それはうまくいくかもしれませんが、最終的にキーボード入力が必要なループを入力するように見えます。私のアプリケーションにはセンサーと外部入力が含まれていますが、キーボードは接続されていません。私は、次のことを試してみた:RPiに画像を表示してPythonの実行を続ける簡単な方法を探す

subprocess.call(これは、画像を表示しますが、画像がキーストロークによってクリアされるまで、コードの実行が停止

wand.display(これは動作しますが、唯一のショーで活性化FEH。小さめのウィンドウではなく、フルスクリーン)

FBI(それは画像を表示することができませんでした)

XCD-オープン(作品が、小さなウィンドウで「イメージビューア」アプリで開く - フルスクリーンのためのオプションなしマウスクリックなし)

私はOpenCVを試していません。それがうまくいくかもしれないようですが、それはこの単純なアプリケーションのために導入するためのインフラストラクチャの多くです。

私はGoogleに行ってきましたが、これに数時間をかけました。この要求は最後の手段です。

あなたには、いくつかの擬似コードたい場合:

displayImage("/image_folder/image1.jpg" fullscreen = True) 
time.sleep(1) 
clearImage() 
displayImage("/image_folder/image2.jpg" fullscreen = True) 

答えて

0

をあなたがFEHとサブプロセスと試みたが、それはあなたをブロックしていないので、多分、バックグラウンドで実行してみてくださいどのようにを表示しませんメインスレッド:

subprocess.call("feh -F yourImage.jpg &", shell=True) 

なお、バックグラウンドプロセス、すなわち、それらは、シェルの機能を使用している、&を始めたので、私はを設定しています。あなたが事前に表示する予定のすべてのイメージの名前を知っていれば、あなたはを開始することができ、また

subprocess.call("pkill feh") 

:あなたは次の画像を表示する前に

その後、以前のインスタンスを殺しますFEH(起動時にすべてのイメージ名を渡すことによって)「スライドショーモード」、その後、信号SIGUSR1あなたがイメージを進めるするたびに届ける:

os.kill(os.getpid(...), signal.SIGUSR1) 

以上が動作しない場合は、あなたの元の質問の下にeditをクリックしてください、我々はフレームバッファのルートを下ることができますので、以下のコマンドからの出力に追加します。

fbset -fb /dev/fb0 

tvservice -d edid 
edidparser edid 
関連する問題