Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- #include <inttypes.h>
- int main(int argc, char **argv)
- {
- clock_t start = clock();
- char *soubor=argv[1];
- FILE *fp;
- char nazev[5];
- int sirka=0;
- int vyska=0;
- int zbytecny=0;
- fp = fopen(soubor,"rb");
- if ((fscanf(fp,"%s %d %d %d\n",nazev,&sirka,&vyska,&zbytecny))!=4)
- fprintf(stderr,"nyehh");
- uint8_t polevstupni[3][3*sirka];
- FILE *fv=fopen("picv.ppm","wb+");
- fprintf(fv,"%s\n%d\n%d\n%d\n",nazev,sirka,vyska,zbytecny);//vystup
- if (fread(polevstupni,sizeof(uint8_t),9*sirka,fp)!=9*sirka)
- fprintf(stderr,"meh");
- fwrite(polevstupni,sizeof(uint8_t),(sirka-1)*3,fv);
- int matice [3][3]={{0,0,0},{0,1,0},{0,0,0}};
- int mezivysledek=0;
- int jednou=0;
- for (int k=1;k<vyska-1;++k)//ridici,jak vysoko
- {
- if (jednou==1)
- {
- for (int r=0;r<sirka*3;++r)
- {
- polevstupni[0][r]=polevstupni[1][r];
- }
- for (int r=0;r<sirka*3;++r)
- {
- polevstupni[1][r]=polevstupni[2][r];
- }
- if (fread(polevstupni[2],sizeof(uint8_t),3*sirka,fp)!=3*sirka)
- fprintf(stderr,"pff");
- }
- for (int l=0;l<=(sirka*3)-3;++l)//ridici posunuje se po obrazku,jak siroko
- {
- jednou=1;
- if (l==0)
- {
- fwrite(&polevstupni[1],sizeof(uint8_t),3,fv);
- }
- if (l==(sirka*3)-3)
- {
- fwrite(&polevstupni[1][(sirka-1)*3],sizeof(uint8_t),3,fv);
- }
- else
- {
- for (int j=-1,jj=0;j<2;++j,++jj)
- {
- for (int i=-3,ii=0;i<5;i+=3,++ii)
- {
- mezivysledek+=polevstupni[1+j][l+i]*matice[ii][jj];
- }
- }
- if (mezivysledek<=0)
- mezivysledek=0;
- if (mezivysledek>=255)
- mezivysledek=255;
- uint8_t lordhelpme=mezivysledek;
- fwrite(&lordhelpme,sizeof(uint8_t),1,fv);
- lordhelpme=0;
- mezivysledek=0;
- }
- }
- }
- if (fread(polevstupni,sizeof(uint8_t),3*(sirka-1),fp)!=3*(sirka-1))
- fprintf(stderr,"afsd");
- fwrite(polevstupni,sizeof(uint8_t),(sirka)*3,fv);
- fclose (fp);
- //fwrite(fp,sizeof(uint8_t),(3*sirka)+1,fv);
- fclose(fv);
- clock_t end = clock();
- float seconds = (float)(end - start) / CLOCKS_PER_SEC;
- printf("%f",seconds);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement