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 :

Capture d'ecran en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut Capture d'ecran en C
    Bonsoir à tous !!!

    je ne suis qu'une simple webmaster maitrisant seulement html, css javascript et php.

    je suis fraichement initiée à C depuis quelque semaine. Ma question est celle-ci :

    Comment faire une capture d'écran en c puis récupérer des informations notamment la couleur des pixels?
    je serais bien heureuse que quelqu'un m'aide parce que j ai jusqu'à ce jour pas trouvé comment faire.....je suis perdue je perds patience ....Merci pour vos réponses.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 449
    Par défaut
    Bonjour et bienvenue,

    Ce n'est pas un exercice facile pour commencer.

    Une capture d'écran relève de la programmation système, et pas du langage C en particulier. Présenté autrement, cela va dépendre essentiellement du système d'exploitation que tu utilises (Windows, MacOS, Linux…) et du mode graphique en cours (X-Window, frame buffer…). Dans pratiquement tous les cas, l'interface servant à dialoguer avec ton système et à lui passer des appels est écrite en C, mais ce n'est pas systématique non plus.

    Si tu veux faire une capture d'écran « pour l'exercice » et lire des pixels, il y a deux approches possibles : soit tu demandes à faire une vraie capture comme tu le ferais en appuyant sur Impr Écran (sur PC) et, dans ce cas, celle-ci va se retrouver dans le « presse-papier », qui est une infrastructure pas simple du tout, contrairement à ce que cela peut sembler à l'utilisateur. Ensuite, celle-ci va être sauvegardée dans un fichier. C'est lui qu'il faudra exploiter au travers de la bibliothèque idoine, en fonction du format d'image que tu auras choisi, soit tu peux demander à obtenir directement un pointeur vers la mémoire vidéo (comme le fait la SDL, même si, en pratique, tu passeras au travers de plusieurs couches successives transparentes pour le développeur).

    Si, en revanche, tu cherches à faire cela pour un besoin professionnel précis, alors il vaut mieux utiliser des logiciels faits pour cela plutôt qu'écrire un programme exécutable à cette fin.

    Bon courage.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut
    merci j'ai bien saisi la partie capture mais vous passez sous silence la deuxième partie qui est de récupérer la couleur du pixel.....

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 750
    Par défaut
    Après cela va dépendre sous quel format l'image va être récupérée

    Mais la version simple c'est de décoder la capture pour avoir un tableau de couleurs: et c'est fini

    Je dis simple parce que, en fonction du format et des librairies, peut être qu'il y a d'autre solutions

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 449
    Par défaut
    Citation Envoyé par marie_claire_92 Voir le message
    merci j'ai bien saisi la partie capture mais vous passez sous silence la deuxième partie qui est de récupérer la couleur du pixel.....
    Je n'ai pas passé cela sous silence : la mémoire vidéo fonctionne comme la mémoire ordinaire, à ceci près que tout ce qui va y être déposé va être automatiquement traduit en un pixel à l'écran. Il suffit donc de la lire avec un pointeur pour en déduire la valeur d'un pixel. Cela dit, tu n'obtiendras pas directement, avec les systèmes d'exploitation actuels, un pointeur directement vers la mémoire physique (d'autant que le nombre de formats dépend non seulement du mode vidéo en cours mais également, aujourd'hui, de la carte graphique que tu utilises). Il faudra donc au minimum passer par une couche d'abstraction qui va te permettre de simuler cet accès.

    En outre, si tu fais une copie dans le presse-papier et que tu sauvegardes cette capture, ton image ne sera plus à l'écran mais dans un fichier. Et les données qui seront dans ce fichier seront a priori compressées. Il va donc te falloir utiliser une bibliothèque de traitement d'image pour ré-ouvrir ce fichier en mémoire et pouvoir parcourir son contenu, toujours avec un pointeur.

    Toi, par contre, tu ne nous as toujours pas dit pourquoi tu voulais faire cela.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut
    Merci pour les réponses,

    pour répondre à ta question , j'essaye de créer un programme qui va me servir de reconnaissance de logo.

Discussions similaires

  1. [Debutant] [Info] Capture d'ecran
    Par Hirouchima dans le forum Multimédia
    Réponses: 11
    Dernier message: 05/09/2005, 23h56
  2. lire le backbuffer ? capture d'ecran?
    Par supergrey dans le forum DirectX
    Réponses: 1
    Dernier message: 14/08/2005, 20h01
  3. Logiciel pour la capture d'écran
    Par nice dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 24/05/2005, 21h09
  4. [débutant][capture d'ecran]
    Par Shooter dans le forum C++
    Réponses: 1
    Dernier message: 11/03/2005, 16h09
  5. Capture d'écran
    Par LeChip dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 23/06/2004, 11h57

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