要将DIB转换为BMP,我需要做什么?
发布于 2013-08-18 02:53:39
位图标题类型的文档位于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
发布于 2008-11-07 14:08:49
查看GdipCreateBitmapFromGdiDib接口
示例:http://www.codeproject.com/KB/GDI-plus/DIBtoBitmap.aspx
发布于 2008-11-07 15:19:46
Imagemagick's 转换函数将在命令行上为您执行此操作(以及许多其他转换)。免费,开源,可在所有主要平台上使用。这是一个很棒的软件,应该在任何人的工具箱中。
https://stackoverflow.com/questions/272152
复制相似问题