草庐IT

bmiColors

全部标签

C++ 从 8 位位图构建像素数据并访问 bmiColor 表信息

我是一个n00b,过去几天一直在研究这个问题,但我只是被困住了。我在OpenSuseLinux中工作,试图解释Windows位图图像以使用Cairo图形库显示。简单地说,我只需要将每个像素的颜色信息放入一个数组并将其提供给开罗,例如pixeldata[i]=someColor,用于图像中的所有像素。到目前为止,我已经弄明白了如何解析位图header并使其能够很好地显示24位位图。但是,现在我正在努力让8位位图也显示出来,而且它只是一个难以处理、不直观的野兽。我能够显示图像,但显示的颜色是错误的......不仅如此,每次我运行程序时它们都会改变!:P我想我正在错误地访问和解释bmiCol

c++ - BITMAPINFO 结构的 bmiColors 字段

BITMAPINFO结构有如下声明typedefstructtagBITMAPINFO{BITMAPINFOHEADERbmiHeader;RGBQUADbmiColors[1];}BITMAPINFO;为什么RGBQUAD数组是静态的?为什么不是指针? 最佳答案 声明一个可变大小结构是一个标准技巧。颜色表永远不会只有一个条目,对于单色位图它至少有2个,对于8bpp位图通常有256个,等等。由bmiHeader.biClrUsed成员指示。所以结构的实际大小取决于位图格式。由于C语言不允许声明这样的数据结构,因此这是最接近的匹配。创

c++ - 我可以将从相机获取的单 channel 图像输出到 winAppi 窗口吗?

我有一个指向使用第三方SDK从相机获取的图像的指针。图像是一个波段(Mono8)。我想将它作为位图输出到winAppi窗口中。我做的是HBITMAPhBitmap=NULL;BITMAPINFOHEADERbmih;bmih.biSize=sizeof(BITMAPINFOHEADER);bmih.biWidth=1280;bmih.biHeight=960;bmih.biPlanes=1;bmih.biBitCount=8;bmih.biCompression=BI_RGB;bmih.biSizeImage=0;bmih.biXPelsPerMeter=0;bmih.biYPelsP