Advertisement
Slapoguzov

Untitled

Oct 13th, 2014
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.95 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. //#include "stdafx.h"
  4. typedef struct {
  5.     char signature[2];
  6.     int size;
  7.     fpos_t* data;
  8.     int lengthHead;
  9.     int width;
  10.     int heidth;
  11.     short countColorPlace;
  12.     short bit;
  13.     char methodArch[4];
  14.     int lengthRastrMas;
  15.     int gorisResolution;
  16.     int vertResolution;
  17.     int countColorPic;
  18.     int countMainColor;
  19. } head_bmp;
  20.  
  21.  
  22. char nameFile[] = "1.bmp";
  23.  
  24. int main()
  25. {
  26.     head_bmp imgHead;
  27.     FILE* f;
  28.     fpos_t *posData;
  29.     char *buffer;
  30.     int comp;
  31.    
  32.  
  33.     if ((f = fopen("1.bmp", "r")) == NULL)
  34.     {
  35.         printf("Ошибочка вышла: файла не существует");
  36.         return -1;
  37.     }
  38.    
  39.     fread(&imgHead.signature,sizeof(char), 2, f);
  40.     if (imgHead.signature[0] == 66 && imgHead.signature[1] == 77)
  41.     {
  42.  
  43.         fread(&imgHead.size, sizeof(int), 1, f);
  44.         fseek(f, sizeof(char)* 2 + 2 * sizeof(int), SEEK_SET);
  45.         fread(&imgHead.data, sizeof(int), 1, f);
  46.  
  47.         fread(&imgHead.lengthHead, sizeof(int), 1, f);
  48.         fread(&imgHead.width, sizeof(int), 1, f);
  49.         fread(&imgHead.heidth, sizeof(int), 1, f);
  50.         fread(&imgHead.countColorPlace, sizeof(short), 1, f);
  51.         fread(&imgHead.bit, sizeof(short), 1, f);
  52.         fread(&imgHead.methodArch, sizeof(char), 4, f);
  53.         fread(&imgHead.lengthRastrMas, sizeof(int), 1, f);
  54.         fread(&imgHead.gorisResolution, sizeof(int), 1, f);
  55.         fread(&imgHead.vertResolution, sizeof(int), 1, f);
  56.         fread(&imgHead.countColorPic, sizeof(int), 1, f);
  57.         fread(&imgHead.countMainColor, sizeof(int), 1, f);
  58.        
  59.     }
  60.     else
  61.     {
  62.         printf("Ошибочка вышла: файла не формата BMP");
  63.         fclose(f);
  64.     }
  65.  
  66.     if (imgHead.bit == 24)
  67.     {
  68.         posData=&imgHead.data;
  69.         fgetpos(f, posData);
  70.         fsetpos(f, posData);
  71.         comp = (4 - (3 * imgHead.width) % 4);
  72.         fread(buffer, 1, 3 * (imgHead.width + comp)*imgHead.heidth, f);
  73.  
  74.     }
  75.     else
  76.     {
  77.         printf("Ошибочка вышла: глубина цвета должна быть равна 24");
  78.         fclose(f);
  79.     }
  80.  
  81.     printf("Hello World");
  82.        
  83.  
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement