|
//文件信息头如下:
LPBITMAPINFO pbmi = NULL;
memset(&pbmi->bmiHeader, 0, sizeof(BITMAPINFOHEADER));
pbmi->bmiHeader.biSize = sizeof (BITMAPINFOHEADER) ;
pbmi->bmiHeader.biWidth = g_x;
pbmi->bmiHeader.biHeight = abs(g_y);
pbmi->bmiHeader.biPlanes = 1;
pbmi->bmiHeader.biBitCount =16;
pbmi->bmiHeader.biCompression = BI_BITFIELDS;
pbmi->bmiHeader.biSizeImage=2*(g_x+(g_x % 2))*pbmi->bmiHeader.biHeight;
pbmi->bmiHeader.biXPelsPerMeter=0;
pbmi->bmiHeader.biYPelsPerMeter=0;
pbmi->bmiHeader.biClrUsed=0;
pbmi->bmiHeader.biClrImportant=0;
*(DWORD*)(pbmi->bmiColors+0)=0xf800;
*(DWORD*)(pbmi->bmiColors+1)=0x07e0;
*(DWORD*)(pbmi->bmiColors+2)=0x001f;
将32位,24位,16(555)和8位分别转换成16位(565)后,在PC与PPC上显示都没有问题。分别保存后也都能显示,但在PC上看转换后的文件的属性,发现biBitCount都变成了32。
把转换后的文件再装入程序中调试,发现biBitCount还是16。
请问是怎么回事啊?
|
|