フレームバッファ(/ dev / fb *)にJPGまたはPNGを表示できますか?


19

Linuxでフレームバッファをキャプチャするには、次のようなものを使用cp /dev/fb0 ~/myimageし、そのようにデバイスにコピーして再表示しcp ~/myimage /dev/fb0ます。フレームバッファの画像データはどの形式ですか?また、事前に作成された画像(jpg、png)をフレームバッファに表示するにはどうすればよいですか?imagemagickを使用してこの形式に変換できますか?

ps raspbianを実行しているraspberry piを使用しています。



更新11-12-2012

pygameを使用して、アプリケーションで画像を表示することになりました。これがフレームバッファを使用して画像を表示するかどうかはわかりません。しかし、それは私のニーズをかなり満たします。

回答:


8

Fbidaを試しましたか?

fbidacontains fbi、フレームバッファの画像ビューア。

fbiマニュアルページへのリンク-http://manpages.ubuntu.com/manpages/lucid/man1/fbi.1.html

PS-Raspbianで動作するかどうかわかりません。


残念ながら、画面の下部に「fbi」がステータスバーを表示するのを防ぐことは不可能のようです。これは、様々な用途のために致命のビットです...
ジュール・

3
@Jules Debian 8(テスト)には-noverbose、画像だけを表示するオプションがあります。ただし、これはマニュアルページには記載されていませんが、「usage:」にのみ記載されています。
アッバフェイ

動作しますか?以前に著者のWebページのソースからコピーを作成しましたが、これにはオプションがありましたが、そのバージョンではオプションは実際には何もしなかったようです。
ジュール

@Jules -noverboseは、を使用fbiしてraspbianをインストールしたときに動作しますapt-get install fbi
D.ウッズ


2

フレームバッファの画像データはどの形式ですか?

Linuxカーネル4.2のドキュメントhttps://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45には次のように記載されています

ピクセルは、ハードウェアに依存する形式でメモリに保存されます。ハードウェアが期待する形式で画像データをフレームバッファメモリに書き込むために、アプリケーションはピクセルストレージ形式を認識する必要があります。

フォーマットは、フレームバッファのタイプとビジュアルによって記述されます。一部のビジュアルには追加情報が必要です。これらの情報は、可変画面情報のbits_per_pixel、greyscale、red、green、blue、transpフィールドに保存されます。

ビジュアルは、マクロピクセルを作成するために色情報をエンコードおよび組み立てる方法を説明します。タイプは、マクロピクセルがメモリに格納される方法を記述します。次のタイプとビジュアルがサポートされています。

ビジュアルとタイプのリストが続きますが、説明だけでは正確なフォーマットをすぐに理解するには不十分です。


1
@Downvotersが説明してください。そうすれば情報を学び、改善することができます。私は決して報復しません。ありがとう。
Ciro Santilli新疆改造中心法轮功六四事件

1

したい場合cp /dev/fb0 ~/myimage、画像にはピクセル情報のみが含まれている必要があり、順序は正しいはずRGB, BGR, RGBA, ARGBです(...)

私もこれをやりたいのですが、適切なツールが見つかりませんでしたので、イメージを事前に作成するためにPythonを使用します。これを試すことができます。



0

fb_var_screeninfoのような構造体で/usr/include/linux/fb.hを見てください。さまざまな色深度と形式があります。16ビット/ピクセルの方法であまりにも頻繁に表示されます。現在32ビットです。fbsetを単独で入力すると、現在の設定が表示されます。これは、ほぼ確実に/etc/fb.modesのエントリの1つになります。

upstairs# fbset

mode "1920x1080"
    geometry 1920 1080 1920 1080 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,8/24
endmode

Imagemagickは、必要なモードに正確に一致させることができれば機能する可能性があります。私はおそらくCで何かを書くと思います。libjpegまたはlibpngを呼び出す1ダースほどの行で、イメージをメモリアレイに解凍できます。あなたのビット/色などが一致する必要があるか、それを変換するために何かを書く必要があります。良い経験。

また、/ dev / fb0をファイルとして読み書きするのではなく、ファイル記述子を取得するためにopen()してからmmap()し、メモリへのポインタを操作します。転送を行う場合、少なくとも10倍ははるかに高速です。

しかし、画面に画像を置くために、私はqivをインストールするだけです。次に、F1を押してヘルプを表示しますが、画像の表示中にxを押すと、必要に応じてルートウィンドウに半永久的に書き込まれます。または、デスクトップ環境設定で壁紙として設定するだけで、起動するたびに表示されます。


鉱山のARGBは明らかに(Raspbian)。私はGIMPカラーピッカーからHTMLタイプの色で始め、それを正すために4回試行しました。
アランコーリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.