Как добавить байты заполнения в растровое изображение?

StackOverflow https://stackoverflow.com/questions/419045

  •  03-07-2019
  •  | 
  •  

Вопрос

Допустим, у меня есть растровые данные, которые я хочу записать в файл.Теперь я хочу записать это как файл BMP..

Эти данные не выровнены по DWORD, и, если я правильно понимаю, их необходимо дополнить достаточным количеством байтов, чтобы достичь следующего DWORD.

Однако, когда я пытаюсь дополнить его этим кодом:

bmFile.Write(0x0, (4-(actualWidth%4)));

получаю ошибку..Если я попытаюсь выполнить отладку (я использую MSVC++ 6.0), следующий оператор укажет на ASSERT в CFile::Write, который утверждает, что первый параметр равен NULL.Так что это провал..

Как мне его дополнить?мне стоит выписать:

bmFile.Write("0x0"(4-(actualWidth%4)));

вместо?или это будет восприниматься буквально...?

Спасибо..

Это было полезно?

Решение

Возможно, попробуйте:

bmFile.Write("\0\0\0\0", (4-(actualWidth%4)));

Ваш первый пример, как вы говорите, - это попытка записать данные, на которые указывает нулевой указатель.Ваш второй пример будет писать из байтов «0», «x», «0», которые имеют значения ASCII 0x30, 0x78, 0x30, что, вероятно, не то, что вы намереваетесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top