Statistiques
| Révision :

root / TrouNoir / pgm2ascii.c

Historique | Voir | Annoter | Télécharger (1,04 ko)

1
#include <stdio.h>
2
#include <stdlib.h>
3

    
4
#define MYSIZE 24
5
#define UCHAR_MAX 255
6

    
7
void sauvegarde_pgm(char nom[MYSIZE],unsigned int *image,int dim)
8
{
9
  FILE            *sortie;
10
  unsigned long   i,j;
11
  
12
  sortie=fopen(nom,"w");
13
  
14
  fprintf(sortie,"P5\n");
15
  fprintf(sortie,"%i %i\n",dim,dim);
16
  fprintf(sortie,"255\n");
17

    
18
  for (j=0;j<dim;j++) for (i=0;i<dim;i++)
19
    {
20
      fputc(image[i+dim*j],sortie);
21
    }
22

    
23
  fclose(sortie);
24
}
25

    
26
void lecture_pgm(char nom[24])
27
{
28
  
29
  FILE            *entree;
30
  unsigned long   i,j;
31
  char MyType[MYSIZE],g,c;
32
  unsigned int MyX,MyY,MyDyn,p;
33
  char map[10] = " .,:;ox%#@";
34
  
35
  entree=fopen(nom,"r");
36
  fscanf(entree," %s\n%d %d\n%d\n",MyType,&MyX,&MyY,&MyDyn);
37

    
38
  printf("Image de type %s, de taille %d*%d avec dynamique %d\n",
39
         MyType,MyX,MyY,MyDyn);
40

    
41
  for (j=0;j<MyY;j++)
42
    {
43
      for (i=0;i<MyX;i++)
44
        {
45
          g=fgetc(entree);
46
          p=2*(char) ((g < 0) ? (UCHAR_MAX - g) : g);
47
          c=map[p*10/256];
48
          printf("%c%c",c,c);
49
        }
50
      printf("\n");
51
    }
52
  
53
  fclose(entree);
54
}
55

    
56
int main(int argc,char **argv)
57
{
58
  lecture_pgm(argv[1]);
59
}