Mire /usr/include/linux/fb.h en estructuras como fb_var_screeninfo. Puede haber una variedad de profundidades y formatos de color. Veo 16 bits / píxel con demasiada frecuencia, ahora tengo 32. Escriba fbset solo y mostrará la configuración actual. Que seguramente será una de las entradas en /etc/fb.modes.
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 podría funcionar si puede hacer que coincida exactamente con el modo que necesita. Probablemente escribiría algo en C, una docena de líneas que llaman libjpeg o libpng pueden descomprimir una imagen en una matriz de memoria. Tus bits / color, etc., deben coincidir o debes escribir algo para convertirlo. Buena experiencia.
Además, en lugar de leer / escribir / dev / fb0 como un archivo, ábralo () para obtener un descriptor de archivo y luego mmap () para que esté trabajando con un puntero a la memoria. Es mucho más rápido hacer transferencias, al menos 10 veces.
Pero para poner imágenes en la pantalla solo instalo qiv. Luego presione F1 para obtener ayuda, pero una x mientras muestra una imagen la escribirá semipermanentemente en la ventana raíz si eso es lo que desea. O simplemente configúrelo como fondo de pantalla en Preferencias de escritorio y aparecerá en cada arranque.