Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. struct palette
  6. {
  7. unsigned char rgbBlue;     
  8. unsigned char rgbGreen;        
  9. unsigned char rgbRed;      
  10. unsigned char rgbReserved;
  11. };
  12.  
  13. void main()
  14. {
  15. int i,j;
  16. unsigned short int bfType;  
  17. int bfSize;    
  18. unsigned short int bfReserved1;
  19. unsigned short int bfReserved2;
  20. int bfOffBits;  
  21.  
  22. int biSize;
  23. int biWidth;       
  24. int biHeight;  
  25. unsigned short int   biPlanes;     
  26. unsigned short int   biBitCount;       
  27. int  biCompression;    
  28. int  biSizeImage;  
  29. int   biXPelsPerMeter;  
  30. int   biYPelsPerMeter;  
  31. int  biClrUsed;    
  32. int  biClrImportant;
  33.  
  34. struct palette pal[256];
  35. unsigned char ** immagine;
  36.  
  37. FILE *fp,*fpout;
  38. fp = fopen ("gate.bmp","rb");
  39. fpout=fopen("immagine.bmp","wb");
  40.  
  41. fread (&bfType, sizeof(unsigned short int),1,fp);
  42. fread (&bfSize, sizeof(int),1,fp);
  43. fread (&bfReserved1, sizeof(unsigned short int),1,fp);
  44. fread (&bfReserved2, sizeof(unsigned short int),1,fp);
  45. fread (&bfOffBits, sizeof(int),1,fp);
  46.  
  47. fread (&biSize, sizeof(int),1,fp);
  48. fread (&biWidth, sizeof(int),1,fp);
  49. fread (&biHeight, sizeof(int),1,fp);
  50. fread (&biPlanes, sizeof(unsigned short int),1,fp);
  51. fread (&biBitCount, sizeof(unsigned short int),1,fp);
  52. fread (&biCompression, sizeof(int),1,fp);
  53. fread (&biSizeImage, sizeof(int),1,fp);
  54. fread (&biXPelsPerMeter, sizeof(int),1,fp);
  55.  
  56. fread (&biYPelsPerMeter, sizeof(int),1,fp);
  57. fread (&biClrUsed, sizeof(int),1,fp);
  58. fread (&biClrImportant, sizeof(int),1,fp);
  59.  
  60. fread (pal, sizeof(pal), 1 ,fp);
  61. biWidth=(int)64;
  62. biHeight=(int)64;
  63.  
  64. immagine = new unsigned char*[biHeight];
  65. for (i=0; i < biHeight; i++)
  66.     immagine[i]= new unsigned char[biWidth];
  67.  
  68. //SCRITTURA HEADER BMP
  69.  
  70. fwrite (&bfType, sizeof(unsigned short int),1,fpout);
  71. fwrite (&bfSize, sizeof(int),1,fpout);
  72. fwrite (&bfReserved1, sizeof(unsigned short int),1,fpout);
  73. fwrite (&bfReserved2, sizeof(unsigned short int),1,fpout);
  74. fwrite (&bfOffBits, sizeof(int),1,fpout);
  75.  
  76. fwrite (&biSize, sizeof(int),1,fpout);
  77. fwrite (&biWidth, sizeof(int),1,fpout);
  78. fwrite (&biHeight, sizeof(int),1,fpout);
  79. fwrite (&biPlanes, sizeof(unsigned short int),1,fpout);
  80. fwrite (&biBitCount, sizeof(unsigned short int),1,fpout);
  81. fwrite (&biCompression, sizeof(int),1,fpout);
  82. fwrite (&biSizeImage, sizeof(int),1,fpout);
  83. fwrite (&biXPelsPerMeter, sizeof(int),1,fpout);
  84.  
  85. fwrite (&biYPelsPerMeter, sizeof(int),1,fpout);
  86. fwrite (&biClrUsed, sizeof(int),1,fpout);
  87. fwrite (&biClrImportant, sizeof(int),1,fpout);
  88. //fwrite (pal, sizeof(pal), 1 ,fpout);
  89.  
  90. for (i=0 ; i < biHeight ; i++)
  91. {  
  92.     for(j=0; j<biWidth; j++)
  93.     {
  94.     if((i+j)%2==0) immagine[i][j]=255; 
  95.     else immagine[i][j]=0;
  96.  
  97.     }
  98. };
  99.  
  100.  
  101.  
  102.  
  103.     for (i=0 ; i < biHeight ; i++)
  104. {  
  105.     for(j=0; j<biWidth; j++)
  106.     {
  107.     fwrite(&immagine[i][j], sizeof(unsigned char),1,fpout);
  108.     };
  109. };
  110.  
  111. fclose(fp);
  112. fclose(fpout);
  113.  
  114.  
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement