如何将DIB转换为BMP需要做什么?

时间:2008-11-07 14:05:24

标签: windows image

如何将DIB转换为BMP?

3 个答案:

答案 0 :(得分:3)

位图标题类型的文档位于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

答案 1 :(得分:2)

检查API GdipCreateBitmapFromGdiDib

实施例: http://www.codeproject.com/KB/GDI-plus/DIBtoBitmap.aspx

答案 2 :(得分:1)

Imagemagick's convert函数将在命令行中为您执行此操作(以及许多其他转换)。免费,开源,适用于所有主要平台。这是一个很棒的软件,应该放在任何人的工具箱中。