Чтение BMP из файла
// ---
DWORD dwidth, dheight;
f = fopen(filename, "r");
fseek(f, 18, 0);
fread(&dwidth, sizeof(dw), 1, f);
fread(&dheight, sizeof(dh), 1, f);
fclose(f);
HBITMAP hBmp;
hBmp = LoadImage(0, filename, IMAGE_BITMAP, dwidth, dheight, LR_LOADFROMFILE);
// ---
Что сделать теперь, чтобы можно было получать цвет отдельных пикселей на рисунке? :???:
Хочу загрузить BMP из файла, пишу вот это:
// ---
DWORD dwidth, dheight;
f = fopen(filename, "r");
fseek(f, 18, 0);
fread(&dwidth, sizeof(dw), 1, f);
fread(&dheight, sizeof(dh), 1, f);
fclose(f);
HBITMAP hBmp;
hBmp = LoadImage(0, filename, IMAGE_BITMAP, dwidth, dheight, LR_LOADFROMFILE);
// ---
Что сделать теперь, чтобы можно было получать цвет отдельных пикселей на рисунке? :???:
Можно использовать GetDIBits, а можно читать прямо из файла: BMP - формат несжатый и имеет простую структуру
Можно использовать GetDIBits, а можно читать прямо из файла: BMP - формат несжатый и имеет простую структуру
Как сказать несжатый...А RLE сжатие? Оно может быть, а может и не быть... Кстати, что за фрукт такой, как он сжимает, кто-нить знает?
Как сказать несжатый...А RLE сжатие? Оно может быть, а может и не быть... Кстати, что за фрукт такой, как он сжимает, кто-нить знает?
н-да... RLE как-то упустил из виду. Алгоритм работы примерно такой: если подряд идут несколько пикселей одного цвета, то записывается их количество и, собственно, цвет. Например: зеленый красный красный красный желтый меняется на зеленый 3красных желтый. Подробно алгоритм описан в MSDN
н-да... RLE как-то упустил из виду. Алгоритм работы примерно такой: если подряд идут несколько пикселей одного цвета, то записывается их количество и, собственно, цвет. Например: зеленый красный красный красный желтый меняется на зеленый 3красных желтый. Подробно алгоритм описан в MSDN
Так это что ж! Это они PCX спёрли, и назвали RLE его, а за свои технологии они горой стоят, вон, сказали, что хотят FAT лицензировать, а про то, что LDAP они в свою фичу переделали, и сказали, что это новинка, что, забыли?
Так это что ж! Это они PCX спёрли, и назвали RLE его, а за свои технологии они горой стоят, вон, сказали, что хотят FAT лицензировать, а про то, что LDAP они в свою фичу переделали, и сказали, что это новинка, что, забыли?
Если быть до конца корректным - RLE это RLE а PCX это PCX. Просто PCX тоже использует RLE сжатие. На данный момент вообще насчитал уже около 200! разновидностей RLE используемых в основном буржуйскими game-мэйкерами. Вобщем то, в конечном итоге велосипед один - меняются только педали :D