首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

小弟我这个24转换黑白图象如何没有成功呢?帮忙看看

2012-01-19 
我这个24转换黑白图象怎么没有成功呢?帮忙看看 BYTEgrayfor(inti0i 800*600i++){gray(m_pImageBuffe

我这个24转换黑白图象怎么没有成功呢?帮忙看看

BYTE   gray;
for   (int   i=0;i <800*600;i++)
{
gray=(m_pImageBuffer[0]+m_pImageBuffer[1]+m_pImageBuffer[2])/3;
*m_pImageBuffer=gray;
m_pImageBuffer++;
*m_pImageBuffer++=gray;
*m_pImageBuffer++=gray;
}
StretchDIBits()。。。。。_pImageBuffer是图象缓冲去指针!BYTE类型

[解决办法]
1、24位色不涉及调色板的问题,因为没有
2、每行的结尾可能会有补充的字节(为了4字节对齐),所以你不能认为所有的象素颜色都是线性排列的,还有无用字节。
3、转换位灰度不能按照/3平均的方式进行,这样效果不好
4、。。。。。。
请搜索一下24位转灰度图的文章,你的代码错误太多
[解决办法]
*m_pImageBuffer++=gray;
*m_pImageBuffer++=gray;

真是涉及到运算符优先级的考题了.

你这样.可能会看到五彩缤纷的世界..
建议你找个例子好好看看.

热点排行