Простейшее чтение BMP-файла. Логика вынесена в класс.
This commit is contained in:
parent
5c69bc1034
commit
4af1f2f4a0
4 changed files with 133 additions and 21 deletions
25
main.cpp
25
main.cpp
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue