Programme pour lire une image en .C
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Programme pour lire une image en .C



  1. #1
    TheGrooks

    Smile Programme pour lire une image en .C


    ------

    Bonjour à tous !
    Actuellement en Terminale, je dois réaliser un projet en Informatique et Science du Numérique ( ISN) en fin d'année.
    La première partie de mon projet consiste à faire un code permettant de lire une image et de l'afficher dans une fenetre graphique !
    Le soucis, c'est qu'une fois que j'ai compilé et que je lance le programme, la fenetre graphique s'ouvre et se ferme automatiquement... Voici le code :

    Code:
    #include "graphics.h"
    typedef struct
    { int R,V,B;}pixel;
    typedef struct 
    {char c1,c2;int L,H,M;pixel *T;}STIM;
    STIM IM;
    char *file_source="Fond.ppm";
    
    void lire_en_tete(FILE *F)
    {
     if ((fscanf(F,"%c",&IM.c1))<1) exit(1); 
     if ((fscanf(F,"%c",&IM.c2))<1) exit(1);
     if (!((IM.c1 == 'P') && (IM.c2 == '3'))) exit(2);
     
     if((fscanf(F,"%d",&IM.L))<1) exit(1);
     if((fscanf(F,"%d",&IM.H))<1) exit(1);
     if((fscanf(F,"%d",&IM.M))<1) exit(1);}
    	
    	void lire_pixels(FILE*F)
    	{ int i,j;pixel p;
    		for(i=0;i<IM.H;i++)
    		 {for(j=0;j<IM.L;j++)
    		  {if((fscanf(F,"%d",&p.R))<1)exit(1); 
    		   if((fscanf(F,"%d",&p.V))<1)exit(1);
    		   if((fscanf(F,"%d",&p.B))<1)exit(1);
    		   *(IM.T+i*IM.L+j)=p;}}}
    		
    		void lire_fichier()
    		{FILE *F=NULL;
    		F=fopen("Fond.ppm","r");
    		lire_en_tete(F);
    		IM.T=malloc(IM.L*IM.H*sizeof(pixel));
    		printf("%p\n",IM.T);
    		lire_pixels(F);
    	}
    		
    		int main()
    {init_graphics(900,600);
    lire_fichier();
     wait_escape();
     exit(0);
    }
    Je me suis aidé d'un TP pris en cours en l'adaptant au cas présent ... Pourriez vous m'aidez s'il vous plait ( et si possible m'expliquer mes erreurs ! ) ?
    Merci beaucoup !

    -----
    Dernière modification par Jack ; 29/04/2017 à 23h29. Motif: Penser aux balises code

  2. #2
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    Tu as essayé de lancer ton programme depuis un terminal en ligne de commande? (Si tu es sous windows, lorsque tu as localisé ton exécutable avec l'explorateur windows, tape cmd dans la ligne d'adresse du navigateur, puis "entrée". Tape ensuite le nom de ton programme puis "entrée" pour l'exécuter)

  3. #3
    pm42

    Re : Programme pour lire une image en .C

    On peut ajouter :

    - formatte correctement le code
    - donne l'intégralité, notamment wait_escape. Sur Windows, cela peut très bien ne pas fonctionner parce que les programmes graphiques n'ont pas accès à la console et on ne sait pas si cette fonction passe par l'interface graphique ou le mode texte.
    - vérifie que tout est là, notamment le fichier que tu lis : le code ne traite pas les erreurs éventuelles
    - utilise un débugger

    Mais dans le cas présent, il serait intéressant de se demander à quel moment les données lues sont supposées être affichées...

  4. #4
    TheGrooks

    Smile Re : Programme pour lire une image en .C

    J'ai oublié de mentionner quelque chose d'essentiel ...
    Je travail sur une machine virtuel ( Virtual Box ), qui est je crois , comparable a Linux.
    Le fichier lu est lui, bien présent...

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : Programme pour lire une image en .C

    Citation Envoyé par TheGrooks Voir le message
    Je travail sur une machine virtuel ( Virtual Box ), qui est je crois , comparable a Linux.
    Le fait que ce soit une machine virtuelle ne change rien.
    "Je crois comparable à Linux" n'est pas vraiment précis.

    Citation Envoyé par TheGrooks Voir le message
    Le fichier lu est lui, bien présent...
    Ok.

  7. #6
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    Citation Envoyé par TheGrooks Voir le message
    Je travail sur une machine virtuel ( Virtual Box ), qui est je crois , comparable a Linux.
    Rien à voir.

    J'aurais apprécié que tu donnes suite aux recommandations que je t'avais faites

  8. #7
    TheGrooks

    Re : Programme pour lire une image en .C

    Après vérification, la machine virtuel est bien sous Linux... Je ne sais pas si cela change quelque chose ...

  9. #8
    TheGrooks

    Re : Programme pour lire une image en .C

    Pour être honnête j'essaie toujours de comprendre tes recommandations ... Pourrais tu être plus clair s'il te plait ?

  10. #9
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    C'est dommage que tu n'aies pas précisé tout de suite que tu travaillais sous linux.

    Bref, tu programmes une application avec des fenêtres, boutons, etc. ou en console, en mode texte donc?

    Tu utilises un IDE? Lequel le cas échéant?
    Dernière modification par Jack ; 30/04/2017 à 22h12.

  11. #10
    TheGrooks

    Re : Programme pour lire une image en .C

    Une application avec des boutons et tout le tralala (Geany ou Bluefish)
    J'ai essayé de lancer mon programme depuis le terminal, mais je ne connais pas la commande permettant d’exécuter ce dernier ...

  12. #11
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    Quelle distribution de linux?

  13. #12
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    Citation Envoyé par TheGrooks Voir le message
    Une application avec des boutons et tout le tralala (Geany ou Bluefish)
    ?????

    Ce sont des éditeurs. Je ne te demandais pas si tu programmais AVEC une application graphique, mais si tu programmais une application graphique.

  14. #13
    TheGrooks

    Re : Programme pour lire une image en .C

    La version de Linux est Ubuntu (32-bit)
    J'essaie de programmer un jeu de tir, jouable dans une fenetre graphique ( je ne sais pas si c'est ce que tu demandes mais c'est ce que j'ai compris ...)
    Je suis désolé pour mes lacunes en informatique

  15. #14
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    vu ton code et ses scanf(), c'est un programme qui se lance en mode terminal. Je voudrais juste que tu lances ton programme depuis un terminal.

    Pour ouvrir un terminal sous ubuntu: http://fr.wikihow.com/ouvrir-une-fen...al-dans-Ubuntu

  16. #15
    TheGrooks

    Re : Programme pour lire une image en .C

    J'ai essayé de lancer le programme depuis le Terminale après avoir trouvé le chemin du fichier et le programme ne veux pas se lancer ... il y a une commande particulière à rentrer pour l’exécuter ?

    Nom : VirtualBox_Lubuntu_isn_avril_2017_01_05_2017_11_37_04.jpg
Affichages : 491
Taille : 117,5 Ko

  17. #16
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    Pour être sur que tu sois dans le bon répertoire, pourrais-tu lister les fichiers présents avec la commande ls -l

    Pour exécuter un programme, il faut précéder son nom par ./, ce qui donne dans ton cas ./Lire_une_image

  18. #17
    TheGrooks

    Re : Programme pour lire une image en .C

    Après avoir listé les fichiers présents pour vérifier le répertoire ( c'est le bon ! ), j'ai donc exécuté le programme via le Terminal : une fenêtre graphique s'ouvre mais le fond reste noir VirtualBox_Lubuntu_isn_avril_2017_01_05_2017_17_29_10.jpg
    Images attachées Images attachées  

  19. #18
    Jack
    Modérateur

    Re : Programme pour lire une image en .C

    une fenêtre graphique s'ouvre mais le fond reste noir
    Donc ton problème est en partie résolu puisque contrairement à ton premier message, la fenêtre ne se ferme plus.

    Il te reste à afficher ce que tu veux dans la fenêtre graphique désormais.

  20. #19
    TheGrooks

    Re : Programme pour lire une image en .C

    Effectivement ! Merci !

Discussions similaires

  1. Programme pour créer une image
    Par zeusodin dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 02/03/2016, 23h55
  2. Création d'un programme qui lire tous les automates
    Par Amirihsen dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 27/02/2016, 15h35
  3. lire une image en langage C avec opencv
    Par koukoumeni dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 12/04/2015, 08h06
  4. Comment savoir quel programme utiliser pour lire un fichier inconnu ?
    Par invitecfe47f14 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 23/12/2009, 00h18
  5. Lire le programme d' un PIC 16F877.
    Par invite64e12149 dans le forum Électronique
    Réponses: 5
    Dernier message: 03/03/2008, 13h58