Простейшее чтение BMP-файла. Логика вынесена в класс.

This commit is contained in:
Евгений Титаренко 2024-04-01 13:58:08 +03:00
parent 5c69bc1034
commit 4af1f2f4a0
4 changed files with 133 additions and 21 deletions

View file

@ -1,27 +1,12 @@
#include <iostream>
#include <cstdint>
#include <filesystem>
#include <fstream>
#include "bmpimage.h"
struct BitmapFileHeader {
char signature[2] = {0, 0};
uint32_t fileSize = 0;
uint16_t reserved1 = 0;
uint16_t reserved2 = 0;
uint32_t imageDataOffset = 0;
};
const std::string FILENAME = "../elef.bmp";
const std::string FILENAME_OUT = "../elef_out.bmp";
const std::string FILENAME = "elef.bmp";
int main() {
BitmapFileHeader bitmapFileHeader;
{
std::ifstream ifs(FILENAME, std::ios_base::binary);
ifs.seekg(0, std::ios::beg);
ifs.read((char *) &bitmapFileHeader, 14);
}
std::cout << "Structure:\n" << "Signature: " << std::string(bitmapFileHeader.signature, 2) << "\nFile size: "
<< bitmapFileHeader.fileSize << "\nReserved 1: " << bitmapFileHeader.reserved1 << "\nReserved 2: "
<< bitmapFileHeader.reserved2 << "\nImage data offset: " << bitmapFileHeader.imageDataOffset << std::endl;
auto image = readBMPImage(FILENAME);
image.write(FILENAME_OUT);
return 0;
}