Наиболее пунктуально заполняют заголовок программы оцифровки
изображений, например, выполняющие сканирование рисунков. Однако после
оцифровки "оригинальные" файлы проходят достаточно сложный путь,
связанный с различными преобразованиями. Очень часто рисунки редактируются
с помощью графических редакторов, которые могут изменить заголовок файла
по "своему усмотрению". Например редактор Paintbrush для Windows
просто очищает в заголовке байты с 30-го по 50-й, что при этом теряется
— можно увидеть в табл. АЛ. Если такой файл импортировать в CorelDraw
4.0, то рисунок окажется искаженным, но сам Paintbrush воспроизводит его
нормально. Вероятно, разработчики CorelDraw не учли возможность несоответствия
"Оригинал" мог быть подготовлен в одном графическом стандарте, а затем преобразован в другой, например, в стандарт BMP какой-либо программой. Такое преобразование может оказаться причиной более тонких ошибок, связанных с различием способов хранения самого рисунка. Например, по требованию стандарта PCX количество точек в строке должно быть кратно 16. Такое требование не противоречит стандарту BMP явно, но и не оговорено в нем. Если при преобразовании в BMP сохранить указанную особенность формата PCX, что обычно и делается, то рисунок будет искажен.
Стандарт для OS/2 оставляет меньше возможностей для отклонений, но одна все таки есть, — в двойном слове bfsize должен храниться размер файла. Содержимое этого слова лучше не использовать в программе. Слишком часто встречаются файлы с "потерянной" старшей частью двойного слова.
Как учесть в программе максимум возможных отклонений от стандарта? Для этого надо использовать только те величины, которые указаны в