Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- //#include "stdafx.h"
- typedef struct {
- char signature[2];
- int size;
- fpos_t* data;
- int lengthHead;
- int width;
- int heidth;
- short countColorPlace;
- short bit;
- char methodArch[4];
- int lengthRastrMas;
- int gorisResolution;
- int vertResolution;
- int countColorPic;
- int countMainColor;
- } head_bmp;
- char nameFile[] = "1.bmp";
- int main()
- {
- head_bmp imgHead;
- FILE* f;
- fpos_t *posData;
- char *buffer;
- int comp;
- if ((f = fopen("1.bmp", "r")) == NULL)
- {
- printf("Ошибочка вышла: файла не существует");
- return -1;
- }
- fread(&imgHead.signature,sizeof(char), 2, f);
- if (imgHead.signature[0] == 66 && imgHead.signature[1] == 77)
- {
- fread(&imgHead.size, sizeof(int), 1, f);
- fseek(f, sizeof(char)* 2 + 2 * sizeof(int), SEEK_SET);
- fread(&imgHead.data, sizeof(int), 1, f);
- fread(&imgHead.lengthHead, sizeof(int), 1, f);
- fread(&imgHead.width, sizeof(int), 1, f);
- fread(&imgHead.heidth, sizeof(int), 1, f);
- fread(&imgHead.countColorPlace, sizeof(short), 1, f);
- fread(&imgHead.bit, sizeof(short), 1, f);
- fread(&imgHead.methodArch, sizeof(char), 4, f);
- fread(&imgHead.lengthRastrMas, sizeof(int), 1, f);
- fread(&imgHead.gorisResolution, sizeof(int), 1, f);
- fread(&imgHead.vertResolution, sizeof(int), 1, f);
- fread(&imgHead.countColorPic, sizeof(int), 1, f);
- fread(&imgHead.countMainColor, sizeof(int), 1, f);
- }
- else
- {
- printf("Ошибочка вышла: файла не формата BMP");
- fclose(f);
- }
- if (imgHead.bit == 24)
- {
- posData=&imgHead.data;
- fgetpos(f, posData);
- fsetpos(f, posData);
- comp = (4 - (3 * imgHead.width) % 4);
- fread(buffer, 1, 3 * (imgHead.width + comp)*imgHead.heidth, f);
- }
- else
- {
- printf("Ошибочка вышла: глубина цвета должна быть равна 24");
- fclose(f);
- }
- printf("Hello World");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement