Добрый день.
Помогите разобраться в вопросе определения длины файла BMP.
Суть вот в чем, по каналу связи принимается байтовый поток(данные) от сервера. Данные представляют собой команды и последовательность данных. Приняв порцию данных, определяем тип команды. В зависимости от типа команды сохраняем полученные данные в файл.
Одной из команд сервера является передача растрового файла в формате BMP. И вот возникла проблема с сохранением данных в файл формата BMP.
Алгоритм такой, анализируем первые 54 байта. В поле bfSize указывается весь размер данных(размер файла BMP). На основании этого числа за вычетом (54) считываем из потока нужное количество байт. Записываем заголовок + считанные данные в файл и должен получиться графический файл в формате BMP.
Но что-то не так получается. Просмотреть файл в графическом вьювере не получается, пишет ошибка.
Предполагаю, что неправильно определяю длину данных.
На основании данных из заголовка пытаюсь альтернативным способом определить длину данных и результат вычисления не совпадает с bfSize.
bfSize = biSizeImage + 54
Как правильно определить длину.
К серверу доступа нет. Посмотреть файл BMP до передачи по сети тоже нет возможности.