Ir ao conteúdo
  • Cadastre-se

Pedro Ivo

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá, eu estou tentando montar um programa que rode uma ppm e modifique para pgm: -convertendo suas cores para a escala de cinza; -usando o os parâmetros do programa para ler imagem de entrada e endereço de saída -é necessário usar TAD -é necessário usar alocação dinâmica porém já tentei modificar meu tp de várias formas, lendo em vários sites e fóruns mas nenhum explica mina dúvida específica do erro, por favor me ajudem, estou a mais de duas semanas nisso e o tp é para terça! o compilador informa os seguintes erros __________________________________________________________ A linha de código do meu programa: main.c #include "filtro.h" colorido *cor; escala_cin *cinza; int x, y; int main(int argc, char *argv[]){ int a= leitura(x, y, argv[1],cor); processa(x,y, cor); salva(x, y, argv[2], cinza); return (0); } -------------------------------------------- filtro.h #ifndef FILTRO_H_INCLUDED #define FILTRO_H_INCLUDED #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int RED,GREEN,BLUE; }colorido; typedef struct { int GRAY; }escala_cin; int leitura(int x, int y, char entrada[], colorido *); int processa(int x, int y, colorido *); int salva(int x, int y, char saida[], escala_cin *); #endif // FILTRO_H_INCLUDED -------------------------------------- filtro.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "filtro.h" int leitura(int x, int y, char entrada[], colorido **cor){ char formato[128]; int MAX, i, j; FILE *arq1; arq1 = fopen(entrada,"r"); if(arq1==NULL){ printf("não foi possivel abrir arquivo ou arquivo inexistente \n"); system ("pause"); exit (1); return 0; } fscanf(arq1,"%s",formato); if(strcmp(formato,"P3")!=0){ printf("Formato do arquivo nao e PPM"); fclose(arq1); } fscanf(arq1, "%d %d %d", x, y, &MAX) ; cor=(colorido *)malloc(x*sizeof(colorido )); } for(i=0;i<x;i++){ for(j=0;j<y;j++){ fscanf(arq1, " %d %d %d ",&cor[j].RED , &cor[j].GREEN , &cor[j].BLUE); } } fclose(arq1); return 0; } int processa(int x, int y, colorido **cor){ int i,j; escala_cin **cinza; cinza=(escala_cin *)malloc(x*sizeof(escala_cin )); for(i=0;i<(x*y);i++){ cinza[j].GRAY = 49 * ( 0.30*cor[j].RED + 0.59*cor[j].GREEN + 0.11*cor[j].BLUE )/255; } } return 0; } int salva(int x, int y, char saida[], escala_cin *cinza){ int i, j; FILE *arq2; arq2 = fopen(saida,"w") ; if(arq2==NULL) { printf("Erro na criacao do arquivo %s\n", saida) ; } fprintf(arq2,"P2\n"); fprintf(arq2,"%d %d \n 49\n", x, y); for(i=0;i<x;i++){ for(j=0;j<*y;j++){ fprintf(arq2, "%d ", cinza[j].GRAY); } fprintf(arq2, "\n"); } fclose(arq2); return 0; } -------------------------------------------------------------------------------

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...