Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <wingdi.h>
  3.  
  4. int main() {
  5. FILE* bmp = fopen("pic.bmp", "rb");
  6. BITMAPFILEHEADER bfh;
  7. BITMAPINFOHEADER bih;
  8. fread(&bfh, sizeof(bfh), 1, bmp);
  9. fread(&bih, sizeof(bfh), 1, bmp);
  10. fseek(bmp, bfh.bfOffBits, SEEK_SET);
  11. int bits = 0;
  12. int width;
  13. if (bih.biWidth % 8 == 0) {
  14. width = bih.biWidth + ((bih.biWidth / 8) % 4) * 8;
  15. }
  16. else {
  17. width = (bih.biWidth / 8 + 1) * 8 + (4 - ((bih.biWidth / 8 + 1) % 4)) * 8;
  18. }
  19. int map[bih.biHeight][bih.biWidth];
  20. for (int i = bih.biHeight - 1; i >= 0; i--) {
  21. for (int j = 0; j < width; j += 8) {
  22. char ch = fgetc(bmp);
  23. for (int k = 7; k >= 0; k--) {
  24. map[i][7 - k + j] = ((ch >> k) & 1);
  25. bits++;
  26. printf("%i", map[i][k + j]);
  27. }
  28. }
  29. }
  30.  
  31. printf("\n%i %i %i", bits, bih.biHeight, width);
  32.  
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement