IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Créer image pixel par pixel


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 140
    Points : 116
    Points
    116
    Par défaut Créer image pixel par pixel
    Bonjour à tous,

    Après des années d'utilisation de Visual C++ pour écrire des programmes "console", je souhaite désormais écrire des programmes "windows". En fait, je ne suis pas vraiment certain de ces appellations. Par programme "windows" j'entends programme interactif avec apparition de fenètres, de boutons, d'images, et intervention de la souris, en fonction de l'intervention d'une personne face à l'écran, contrairement aux programmes "console" pour qui la seule interaction possible est l'impression de questions et la saisie de texte en réponse.

    Je souhaite faire apparaître une image sur l'écran, qui serait construite par le programme lui-même. J'ai donc besoin de pouvoir définir moi-même chaque pixel de l'image affichée. J'ai trouvé dans ma boîte à outils un composant appelé pictureBox1. Mais dans les propriétés de ce composant, je ne trouve rien qui me donne accès aux pixels. Le composant en question est-il le bon ? Je n'en trouve pas d'autre.

    Merci de toute aide éventuelle.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 116
    Points : 32 968
    Points
    32 968
    Billets dans le blog
    4
    Par défaut
    Salut,

    il te faut une bibliothèque graphique.
    Plus accès logiciel : Qt, wxWidget, GTK, ...
    Plus accès temps réel/jeu :: SFML, SDL, ... ou carrément OpenGL, DirectX
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Merci pour ta réponse rapide.

    Comment faire ?

    Dois-je télécharger Qt (par exemple) et ensuite comment dire à Visual C++ que je veux utiliser Qt ?

    D'ailleurs, je ne connais rien à toutes ces bibliothèques. D'après ton expression "carrément OpenGL, DirectX", j'ai l'impression que ces derniers, c'est mieux ! Comment choisir ? Carrément OpenGL ?

    Merci encore !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 116
    Points : 32 968
    Points
    32 968
    Billets dans le blog
    4
    Par défaut
    Qt est un peu à part, pour l'utiliser mieux vaut utiliser Qt Creator, sinon mettre en place sa chaîne de compilation est un peu chiant.
    Non openGL et DirectX sont les plus bas niveaux possibles, donc c'est rarement la bonne solution..
    Si tu ne sais pas du tout installer une lib, faut commencer par là. Ca dépend un peu de chaque lib, mais rien d'insurmontable avec son moteur de recherche favori.

    C'est un peu vieux mais y'a plein de liens en FAQ ou dans diverses sections du forum.
    https://cpp.developpez.com/faq/cpp/?...e-en-Cplusplus
    https://cpp.developpez.com/bibliotheques/?page=ihm
    https://cpp.developpez.com/telecharg...egorie/455/IHM
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Merci beaucoup. Je vais aller voir ça.

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    La plupart des applications dites « graphiques » qui s'exécutent par l'intermédiaire d'un système d'exploitation moderne peuvent être distinguées en deux grandes catégories :

    • celles qui utilisent - wrappées ou non - les primitives du système d'exploitation à savoir la WINAPI pour Windows, l'API du serveur graphique pour Linux (Xlib pour X, par exemple) pour offrir une interface sophistiquée avec menus, boutons, listes.. qui est compatible/intégrée avec le reste de l'environnement. Un tel programme peut être portable si on utilise une couche d'abstraction, comme Qt par exemple. Les éditeurs de texte, applications de bureautique, navigateurs web, lecteurs multimédia, le démineur de Windows 95.. se situent en général dans cette catégorie.
    • celles qui demandent simplement une fenêtre maître, dessinent tout à l'intérieur - « pixel par pixel » comme tu l'écris - le plus souvent via une API d'accélération matérielle comme OpenGL ou Direct3D, et récupèrent directement les entrées utilisateur (clavier, souris..). On a besoin d'une bibliothèque qui donne accès à l'OS pour créer la fenêtre/contexte et d'une autre pour dessiner à l'intérieur (couple GLFW + OpenGL, par exemple), ou alors d'une couche d'abstraction : SDL, SFML, moteur de jeu.. Les jeux vidéo se situent quasi exclusivement dans cette catégorie.

    Le choix de telle ou telle catégorie dépend de la nature de ton projet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un image dynamiquement pixel par pixel
    Par mchk0123 dans le forum Qt
    Réponses: 14
    Dernier message: 03/04/2007, 23h02
  2. Image a remplir Pixel par Pixel, Quel objet utiliser ?
    Par ZbergK dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 28/02/2007, 21h35
  3. Lecture de fichiers images pixels par pixels
    Par FabHacker dans le forum Langage
    Réponses: 3
    Dernier message: 26/11/2005, 16h12
  4. [ImageMagick] Parcourir une image pixel par pixel
    Par kip dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/10/2005, 14h10
  5. [VB6] [Graphisme] Transfert d'image pixel par pixel
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 15/10/2002, 09h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo