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.
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 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.