Что мы должны делать с растровым файлом, когда его размер строки не кратен 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;
};

0

Решение

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

0

Другие решения

Других решений пока нет …