Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct{
- int c;
- int l;
- unsigned char maximo;
- unsigned char **imagem;
- } PGM;
- PGM *LerPGM(char* entrada);
- int main()
- {
- PGM *imgconv;
- int i, j;
- imgconv=LerPGM("entrada.pgm");
- printf("\n");
- for(i=0; i<imgconv->l; i++){
- for(j=0; j<imgconv->c; j++){
- printf("%d ", imgconv->imagem[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
- PGM *LerPGM(char* entrada){
- PGM *img;
- img=malloc(sizeof(PGM));
- char tipo[3];
- int i, j;
- FILE *arq;
- arq = fopen(entrada, "r");
- if(arq == NULL){
- printf("Arquivo nao encontrado.");
- return 0;
- }
- fscanf(arq, "%s %d %d %d", &tipo, &img->c, &img->l, &img->maximo);
- if(strcmp(tipo, "P2")){
- printf("O arquivo nao e PGM.");
- return 0;
- }
- img->imagem = malloc(img->l * sizeof(char *));
- for(i=0; i<img->c; i++) img->imagem[i] = malloc(img->c * sizeof(char));
- if(img->imagem == NULL){
- printf("Falha na alocacao de memoria.");
- return 0;
- }
- for(i=0; i<img->l; i++){
- for(j=0; j<img->c; j++){
- fscanf(arq, "%d", &img->imagem[i][j]);
- }
- }
- fclose(arq);
- for(i=0; i<img->l; i++){
- for(j=0; j<img->c; j++){
- printf("%d ", img->imagem[i][j]);
- }
- printf("\n");
- }
- return img;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement