Что мы должны делать с растровым файлом, когда его размер строки не кратен 4?

Я пишу программу для поворота изображения. Формат изображения - битовый, и в соответствии с http://en.wikipedia.org/wiki/BMP_file_format размер строки растрового изображения должен быть кратным 4. Мое входное изображение не так, и когда я записываю новое изображение в файл это не то, что должно быть. Конечно, сначала я читаю часть данных в массив пикселей, а затем поворачиваю этот массив. Если вам нужна дополнительная информация, пожалуйста, сообщите мне.

Конечно, моя предыдущая проблема была решена, но я не знаю, почему C++ считает размер этой структуры 56 байт?

Вот структура:

struct  Bitmap_Header
{
    char H_Signature[2];
    unsigned int H_Filesize;
    int H_Reserved;
    unsigned int H_DataOffset;
    unsigned int H_Size;
    int H_Width;
    int H_Height;
    short int H_Planes;
    short int H_BitCount;
    unsigned int H_Compression;
    unsigned int H_Imagesize;
    int H_XPixelsPerM;
    int H_YPixelsPerM;
    unsigned int H_ColorsUsed;
    unsigned int H_ColorsImportant;
};

1 ответ

Когда вы записываете изображение в файл bmp, вы должны дополнить каждую строку сканирования, чтобы его размер в байтах был кратен 4. Просто добавьте дополнительные 0 байтов в конце каждой строки.

Другие вопросы по тегам