Afficher une image

Fermé
Linus - 27 juin 2014 à 17:35
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 28 juin 2014 à 11:39
Bonjour,

J'ai coder un programme qui permet de lire le contenu d'un fichier bmp en mode binaire. J'ai donc un fichier ou j'ai la quantité de RGBA de chaque pixel. Mais j'aimerais afficher ces pixels à l'écran. Comment pourra-je faire, SANS UTILISER DE BIBLIOTHÈQUE DE MULTI-FENETRAGE ?
A voir également:

3 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
27 juin 2014 à 18:07
'lut, c'est quoi une "bibliothèque de multi-fenêtrage" pour toi? Une bibliothèque comme GTK+ ou Qt, ou autre chose? Tu es sous quelle plateforme?
(Je suppose Linux vu 1. ton nom 2. tes posts précédents (si c'est toi), dans ce cas voudrais-tu dire "sans serveur de fenêtres comme X11"?)
1
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
28 juin 2014 à 11:39
Qt n'était qu'un exemple, mais oui ce n'est que pour le C++.
Sous Linux, 2 choix s'offrent à toi pour afficher sans X11, soit
fbdev
, soit KMS.

fbdev
consiste à ouvrir le fichier
/dev/(fb/)fbX
et a écrire des octets dedans directement, le plus souvent au travers d'un
mmap
pour la simplicité. De nombreux tutoriels sont dispo en ligne pour savoir comment faire, en soi c'est pas hyper compliqué. Le seul hic peut être le format d'image qu'attend
fbdev
, mais généralement sur PC c'est du RGB(A)888(8), le plus simple a gérer (3/4 couleurs de 0 à 255, les appareils mobiles ont souvent du RGB565, une "traduction" de couleurs et alors nécessaire).

KMS est beaucoup plus récent et s'appuie sur l'accès direct a la carte graphique (ouverture de
/dev/dri/cardX
). Donc si tu utilises un driver propriétaire, notamment celui de nVidia, c'est fichu, car ils peuvent pas implémenter ça (question de licence). Autrement, ça te permet d'arriver aux mêmes fins que
fbdev
, avec l'avantage de la gestion explicite de l'écran et de la résolution à laquelle tu affiches, ainsi que la synchro verticale. Le désavantage c'est que c'est plus complexe à mettre en place que
fbdev
(mais aussi simple a utiliser). Les meilleurs exemples que j'ai trouvé sont sur github. Le plus cool c'est que avec KMS+GBM on peut même faire de la 3D avec OpenGL! (oui, sans serveur X11)

Généralement on prend
fbdev
car c'est plus ancien donc plus répandu, et aussi plus simple.
1
Oui, c'est ça merci ! C'est bien X11 que je cherchais (en non GTK+, QT ou encore SDL). Mais QT n'est pas que pour le C++ ?
0