Afficher une image

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 ?

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    '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. Contributeur
      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++ ?