2008-11-07 3 views

ответ

1

Imagemagick's функция преобразования будет делать это (и многие другие преобразования) для вас в командной строке. Свободный, с открытым исходным кодом, доступный на всех основных платформах. Это отличный инструмент, который должен быть в чьей-либо панели инструментов.

+0

Где именно команду утилиты DOS. Кажется, он не находит его, только полный исходный код. – Rick 2011-05-12 16:06:53

2

Документация типов заголовков растровых изображений находится на http://msdn.microsoft.com/en-us/library/dd183386%28VS.85%29.aspx.

В коде разница между файлом bmp и представлением памяти DIB заключается в наличии структуры BITMAPFILEHEADER в начале (http://msdn.microsoft.com/en-us/library/dd183374(v=vs.85).aspx). Таким образом, буквальный ответ для преобразования bmp в dib - это пропустить BITMAPFILEHEADER и начать с адреса памяти заголовка DIB (сразу после заголовка файла растрового изображения), который всегда находится в 14 байтах от начала адреса памяти bmp.

BITMAPFILEHEADER *bmp = ...; 
char * bmpBytes = reinterpret_cast<char *>(bmp); 
void * myDib = (void *)bmpBytes + BMP_HEADER_LENGTH; /* (14 bytes) */ 
/* cast and do something with myDib */ 
... 

НТН

Смежные вопросы