2008-11-07 193 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头的内存地址(紧随位图文件头之后)开始,该内存地址总是比bmp存储器地址的开始处更多14个字节。

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

HTH

相关问题