Veja /usr/include/linux/fb.h em estruturas como fb_var_screeninfo. Pode haver uma variedade de profundidades e formatos de cores. Eu vejo 16 bits / pixel com muita frequência, agora tenho 32. Digite fbset por si só e ele exibirá as configurações atuais. Que quase certamente será uma das entradas em /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
O Imagemagick pode funcionar se você conseguir fazer exatamente o modo necessário. Eu provavelmente escreveria algo em C, uma dúzia de linhas chamando libjpeg ou libpng podem descomprimir uma imagem em uma matriz de memória. Seus bits / cores etc. precisam corresponder ou você precisa escrever algo para convertê-lo. Boa experiencia.
Além disso, em vez de ler / escrever / dev / fb0 como um arquivo, abra () para obter um descritor de arquivo e depois mmap () para que você esteja trabalhando com um ponteiro para a memória. É muito mais rápido em fazer transferências, pelo menos 10x.
Mas para colocar imagens na tela, basta instalar o qiv. Em seguida, pressione F1 para obter ajuda, mas um x ao exibir uma imagem a gravará semi-permanentemente na janela raiz, se é isso que você deseja. Ou apenas defina-o como papel de parede nas Preferências da área de trabalho e ele será exibido a cada inicialização.