Ich weiß, dass ich den Framebuffer unter Linux mit etwas wie erfassen kann cp /dev/fb0 ~/myimage
und zeigen Sie dies erneut an, indem Sie auf das Gerät zurückkopieren cp ~/myimage /dev/fb0
. In welchem Format sind die Framebuffer-Bilddaten? und wie würde ich vorgehen, um ein vorgefertigtes Bild (jpg, png) im Framebuffer anzuzeigen? Kann ich mit imagemagick in dieses Format konvertieren?
p.s. Ich benutze einen Himbeer-Pi mit Himbeer.
Update 12.11.2012
Am Ende habe ich verwendet Pygame um Bilder in meiner Anwendung anzuzeigen. Ich bin mir nicht sicher, ob der Framebuffer für die Anzeige der Bilder verwendet wird. Aber es entspricht ganz gut meinen Bedürfnissen.
quelle
-noverbose
Option, mit der nur das Bild selbst angezeigt wird; dies ist jedoch nicht in der manpage dokumentiert, sondern steht nur in der "usage:" dafür.-noverbose
funktioniert bei mir mitfbi
auf Raspbian, als ich es mit installiert habeapt-get install fbi
.es könnte Ihnen helfen, ausführliche Anleitung http://hacklab.cz/2012/04/22/usefulness-linux-framebuffer-virtual-console Ich denke, es hat alles an einem Ort über Linux Framebuffer
quelle
Die Dokumentation zum Linux-Kernel 4.2 https://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45 sagt:
Es folgt eine Liste von Bildern und Typen, aber die Beschreibung reicht nicht aus, um die genauen Formate sofort zu verstehen.
quelle
Wenn du möchtest
cp /dev/fb0 ~/myimage
sollte das Bild nur die Pixelinformationen enthalten und die Reihenfolge sollte stimmen (RGB, BGR, RGBA, ARGB
...)Ich möchte das auch tun, aber ich habe kein passendes Werkzeug gefunden, also benutze ich Python, um das Image vorab zu erstellen. Du kannst es versuchen diese .
quelle
Wenn Sie sie installieren können,
fbcat
erstellt ein ppm-Bild undfbgrab
erstellt ein PNG-Bild.quelle
Schauen Sie sich /usr/include/linux/fb.h mit Strukturen wie fb_var_screeninfo an. Es kann eine Vielzahl von Farbtiefen und Formaten geben. Ich sehe 16 Bits / Pixel viel zu oft, momentan habe ich 32. Tippe fbset für sich und es werden die aktuellen Einstellungen angezeigt. Welches wird mit ziemlicher Sicherheit einer der Einträge in /etc/fb.modes sein.
Imagemagick funktioniert möglicherweise, wenn Sie es genau auf den gewünschten Modus abstimmen können. Ich würde wahrscheinlich etwas in C schreiben, ein Dutzend Zeilen, die libjpeg oder libpng aufrufen, können ein Bild in ein Speicherarray dekomprimieren. Ihre Bits / Farben usw. müssen übereinstimmen oder Sie müssen etwas schreiben, um es zu konvertieren. Gute Erfahrung.
Statt / writing / dev / fb0 als Datei zu lesen / schreiben, öffne () es, um einen Dateideskriptor zu erhalten, und dann mmap (), damit du mit einem Zeiger auf den Speicher arbeitest. Es ist viel schneller beim Übertragen, mindestens 10x.
Aber um Bilder auf den Bildschirm zu bringen, installiere ich einfach qiv. Drücken Sie dann die Taste F1, um Hilfe zu erhalten, aber ein x während der Anzeige eines Bilds schreibt es semipermanent in das Stammfenster, wenn Sie dies wünschen. Oder stellen Sie es einfach in den Desktop-Einstellungen als Hintergrundbild ein und es wird bei jedem Start angezeigt.
quelle