файл с расширением "*.BMP" - является контейнером. Он может содержать данные в формате: png, jpg, dib
Это Майкрософт перемудрила. Хотя в старо давние времена расширение означало формат.
Так вот dib. DIB бывает разные со сжатием и бес сжатия.
Бес сжатия делится на вида это индексный формат(он же формат с палитрой) и формат значений яркостей.
Более того структуру пикселя определяет заголовком DIB.
Структуры пикселей бывают разные. В DIB поддерживаются группа структур RGB.
Почему группа? Да потому что в заголовке DiB может быть указан одна из стандартных структур либо же та которая может быть закодирована при помощи масок и смещений.
http://www.fileformat.info/format/bmp/egff.htmТут описано 4 из 5-6 версий заголовков.
А вообще на ХабрХабр не раз это всё описывалось.
vitaly_l писал(а): 0x7E0; это равно паскалевскому: $7E0 ?
Да это одно и тоже.
Добавлено спустя 11 минут 59 секунд:vitaly_l писал(а):Mirage писал(а):b1*256+b2.Вот так, если присвоить результат bitmap.pixel[x,y], то получается изображение типа "сепия",
Вы что просили Byte в Word. А зачем тогда Word пытаетесь в TColor передать?
vitaly_l писал(а):Words: PWords;Вот на это компилятор ругается и говорит, что перепутаны PByte и PWord.
Врёте.
vitaly_l писал(а):И потом их наверно нельзя так считать, даже зная указатель начала и количество нужных байт, т.к. наверняка, первый и второй байты могут быть в куче не по порядку,
Сделайте что-бы было по порядку. Как у всех нормальных людей.
vitaly_l писал(а):Цифры, которые даёт Microsoft - вообще ни для чего не подходят.
Если программа не работает должным образом, то виноват программист. Нечего на других сваливать свою вину.