Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.70 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <time.h>
  4. #include <inttypes.h>
  5.  
  6. int main(int argc, char **argv)
  7. {
  8.     clock_t start = clock();
  9.     char  *soubor=argv[1];
  10.     FILE *fp;
  11.     char nazev[5];
  12.     int sirka=0;
  13.     int vyska=0;
  14.     int zbytecny=0;
  15.    
  16.  
  17.     fp = fopen(soubor,"rb");
  18.     if ((fscanf(fp,"%s %d %d %d\n",nazev,&sirka,&vyska,&zbytecny))!=4)
  19.         fprintf(stderr,"nyehh");
  20.  
  21.     uint8_t polevstupni[3][3*sirka];
  22.  
  23.     FILE *fv=fopen("picv.ppm","wb+");
  24.     fprintf(fv,"%s\n%d\n%d\n%d\n",nazev,sirka,vyska,zbytecny);//vystup
  25.    
  26.     if (fread(polevstupni,sizeof(uint8_t),9*sirka,fp)!=9*sirka)
  27.         fprintf(stderr,"meh");
  28.  
  29.     fwrite(polevstupni,sizeof(uint8_t),(sirka-1)*3,fv);
  30.  
  31.     int matice [3][3]={{0,0,0},{0,1,0},{0,0,0}};
  32.    
  33.     int mezivysledek=0;
  34.     int jednou=0;
  35.  
  36.     for (int k=1;k<vyska-1;++k)//ridici,jak vysoko
  37.     {
  38.         if (jednou==1)
  39.         {
  40.             for (int r=0;r<sirka*3;++r)
  41.             {
  42.                 polevstupni[0][r]=polevstupni[1][r];
  43.             }
  44.            
  45.             for (int r=0;r<sirka*3;++r)
  46.             {
  47.                 polevstupni[1][r]=polevstupni[2][r];
  48.             }
  49.  
  50.             if (fread(polevstupni[2],sizeof(uint8_t),3*sirka,fp)!=3*sirka)
  51.                 fprintf(stderr,"pff");
  52.         }
  53.  
  54.         for (int l=0;l<=(sirka*3)-3;++l)//ridici posunuje se po obrazku,jak siroko
  55.         {
  56.             jednou=1;
  57.            
  58.             if (l==0)
  59.             {
  60.                 fwrite(&polevstupni[1],sizeof(uint8_t),3,fv);
  61.             }
  62.             if (l==(sirka*3)-3)
  63.             {
  64.                 fwrite(&polevstupni[1][(sirka-1)*3],sizeof(uint8_t),3,fv);
  65.             }
  66.  
  67.             else
  68.             {
  69.                
  70.                 for (int j=-1,jj=0;j<2;++j,++jj)
  71.                 {
  72.                     for (int i=-3,ii=0;i<5;i+=3,++ii)
  73.                     {
  74.                    
  75.                         mezivysledek+=polevstupni[1+j][l+i]*matice[ii][jj];
  76.                     }
  77.                 }
  78.  
  79.                 if (mezivysledek<=0)
  80.                     mezivysledek=0;
  81.  
  82.                 if (mezivysledek>=255)
  83.                     mezivysledek=255;
  84.  
  85.             uint8_t lordhelpme=mezivysledek;
  86.            
  87.             fwrite(&lordhelpme,sizeof(uint8_t),1,fv);
  88.             lordhelpme=0;
  89.             mezivysledek=0;
  90.             }
  91.         }
  92.     }
  93.    
  94.     if (fread(polevstupni,sizeof(uint8_t),3*(sirka-1),fp)!=3*(sirka-1))
  95.         fprintf(stderr,"afsd");
  96.     fwrite(polevstupni,sizeof(uint8_t),(sirka)*3,fv);
  97.  
  98. fclose (fp);
  99.  
  100.  
  101. //fwrite(fp,sizeof(uint8_t),(3*sirka)+1,fv);
  102.  
  103. fclose(fv);
  104. clock_t end = clock();
  105. float seconds = (float)(end - start) / CLOCKS_PER_SEC;
  106. printf("%f",seconds);
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement