Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- typedef struct
- {
- int col;
- int fi;
- unsigned char **m;
- }matricial;
- typedef struct
- {
- int f1;
- int f2;
- int c1;
- int c2;
- int factor;
- unsigned char **m;
- }coordenadas;
- void reservar(matricial *m);
- void lee(matricial *matriz,char imagen[20]);
- void opera(matricial *matriz,matricial *matriz2);
- void introduce(matricial *matriz2,char imagen[20]);
- void ampliar(coordenadas datos,char imagen[20]);
- int main()
- {
- matricial matriz, matriz2;
- coordenadas datos;
- // reservar(&matriz);
- // lee(&matriz,"fruta3.pgm");
- // opera(&matriz,&matriz2);
- // introduce(&matriz2,"imagen.pgm");
- printf("dame desde que fila vas a recorrer\n");
- scanf("%d",&datos.f1);
- printf("dame desde que fila vas a a llegar\n");
- scanf("%d",&datos.f2);
- printf("dame desde que columna vas a a recorrer\n");
- scanf("%d",&datos.c1);
- printf("dame desde que columna vas a a recorrer\n");
- scanf("%d",&datos.c2);
- printf("dame el factor de apliación\n");
- scanf("%d",&datos.factor);
- ampliar(datos,"fruta3.pgm");
- }
- void reservar(matricial *matriz)
- {
- int i,j;
- (*matriz).m=(unsigned char **)malloc(sizeof(unsigned char*)*((*matriz).fi));
- for(i=0;i<(*matriz).col;i++)
- {
- (*matriz).m[i]=(unsigned char*)malloc(sizeof(unsigned char)*((*matriz).col));
- }
- }
- void lee(matricial *matriz,char imagen[20])
- {
- int fil,col,i;
- FILE *f;
- f=fopen(imagen,"rb");
- fscanf(f,"%d %d",&fil,&col);
- (*matriz).fi=fil;
- (*matriz).col=col;
- for(i=0;i<(*matriz).fi;i++)
- {
- fread(&(*matriz).m[i],sizeof(unsigned char),(*matriz).col,f);
- }
- fclose(f);
- }
- void opera(matricial *matriz,matricial *matriz2)
- {
- int i,j;
- (*matriz2).fi=(*matriz).fi;
- (*matriz2).col=(*matriz).col;
- reservar(matriz2);//aqui esta el fallo!
- for(i=0;i<(*matriz).fi;i++)
- {
- for(j=0;j<(*matriz).col;j++)
- {
- (*matriz2).m[i][j]=255-(*matriz).m[i][j];
- }
- }
- }
- void introduce(matricial *matriz2,char imagen[20])
- {
- int i,j;
- FILE *f;
- fopen(imagen,"wb");
- for(i=0;i<(*matriz2).fi;i++)
- {
- for(j=0;j<(*matriz2).col;j++)
- {
- fwrite(&(*matriz2).m[i][j],sizeof(unsigned char),1,f);
- }
- }
- fclose(f);
- }
- void ampliar(coordenadas datos,char imagen[20])
- {
- int tamf,tamc,fac;
- fac=datos.factor;
- tamf=(datos.f2-datos.f1)*datos.factor;
- tamc=(datos.c2-datos.c1)*datos.factor;
- int i,j;
- datos.m=(unsigned char **)malloc(sizeof(unsigned char*)*tamf);
- for(i=0;i<tamc;i++)
- {
- datos.m[i]=(unsigned char*)malloc(sizeof(unsigned char)*tamf);
- }
- FILE *f;
- int mf,mc;
- mf=datos.f2-datos.f1;
- mc=datos.c2-datos.c1;
- unsigned char aux[datos.f2-datos.f1][datos.c2-datos.c1];
- f=fopen(imagen,"rb");
- for(i=datos.f1;i<datos.f2;i++);
- {
- for(j=datos.c1;i<datos.c2;j++)
- {
- fread(&aux[i][j],sizeof(unsigned char),1,f);
- }
- }
- fclose(f);
- int aumento=0;
- int h,k=0;
- for(i=0;i<mf;i++);
- {
- h=0;
- for(j=0;i<mc;j++)
- {
- while(fac!=0)
- {
- datos.m[i+k][h]=aux[i][j];
- h++;
- fac --;
- while(fac!=0)
- {
- datos.m[k][h]=aux[i][j];
- k++;
- fac--;
- }
- h++;
- fac --;
- }
- fac=datos.factor;
- }
- }
- }
Add Comment
Please, Sign In to add comment