0 <|-------------> 100 RED
0 <|||-----------> 100 GREEN
0 <||------------> 100 BLUE
:)
Добавлено через 2 минуты
Которые тоже непредсказуемо выглядят на разных агрегатах. :D
Вид для печати
Возникла у меня идея сделать поддержку таких BMP-файлов в моём будущем GSV (правда, не представляю когда работы над ним вновь начнуться :)).
Надо бы придумать способы (полу)автоматического детектирования этих файлов. Можно делать это по размеру: 24694 байтов (97 секторов), но я предлагаю закрепить ещё и какое-нибудь
расширение. Например, <4>. Также хотелось бы узнать, можно ли детектировать по заголовку данных в файле (если там таковой есть)?
Кто как думает?
Детектировать нужно по заголовку. В заголовке файла всё прописано.
Хотя для начала, чтобы не лезть внутрь файла, можно для начала проверить его длину. Требуемый BMP всегда будет иметь одинаковый размер. Но с другой стороны ничто не мешает сделать просмотр файлов не только 192х256, то также как более мелких, так и более крупных.
А где можно прочитать про формат заголовка BMP-файла?
Вот формат BMP-файла:
Взято отсюда.Код:Структура Bmp-файла
Имя Длина Смещение Описание
Заголовок файла (BitMapFileHeader)
Type 2 0 Сигнатура "BM"
Size 4 2 Размер файла
Reserved 1 2 6 Зарезервировано
Reserved 2 2 8 Зарезервировано
OffsetBits 4 10 Смещение изображения от начала файла
Информационный заголовок (BitMapInfoHeader)
Size 4 14 Длина заголовка
Width 4 18 Ширина изображения, точки
Height 4 22 Высота изображения, точки
Planes 2 26 Число плоскостей
BitCount 2 28 Глубина цвета, бит на точку
Compression 4 30 Тип компрессии (0 - несжатое изображение)
SizeImage 4 34 Размер изображения, байт
XpelsPerMeter 4 38 Горизонтальное разрешение, точки на метр
YpelsPerMeter 4 42 Вертикальное разрешение, точки на метр
ColorsUsed 4 46 Число используемых цветов (0 - максимально возможное для данной глубины цвета)
ColorsImportant 4 50 Число основных цветов
Таблица цветов (палитра) (ColorTable)
ColorTable 1024 54 256 элементов по 4 байта
Данные изображения (BitMap Array)
Image Size 1078 Изображение, записанное по строкам слева направо и снизу вверх