高兴,散分(200分~~)
使用vfw DrawDibDraw()来显示DIB,显示了很多张都没问题,惟独有一张总是异常(24Bit),只能trace..
原来,当读入BITMAPINFOHEADER时,这张DIB的biClrUsed值竟然为16MB,而通常的 DIB(大于8Bit)此值为0,当使用如下语句:
if(8 < GetBitCount())//GetBitCount()返回读入的biBitCount
lpBminfo->bmiHeader.biClrUsed = 0;//把它至为0
DrawDibDraw()归于正常,NND,代码看了N多,竟然没有说到这个..Bug?
用其它的使用vfw的DIB类test,全死翘翘,晕!
用一张真彩色bmp填上该值test,问题依旧,huhuhu..(恐怕不是偶的RPWT吧?,哪位帮忙test一下)
而使用StretchDIBits()等函数来显示根本P问题都没有
有趣!kakaka~~~
高兴ing,散分~~~~~