求c/c++读取32位带alpha通道bmp并返回指向bmp的位图数据的代码,请高手指导指导。

尽量别借用mfc,由于对mfc还不是很了解,对于一些类库,如cimg,cximage,opencv,gdi+这些,能少用尽量少用。... 尽量别借用mfc,由于对mfc还不是很了解,对于一些类库,如cimg,cximage,opencv,gdi+这些,能少用尽量少用。 展开
 我来答
久而旧之07
2012-07-12
知道答主
回答量:33
采纳率:0%
帮助的人:10.1万
展开全部
turns a 16 or 32 bit bitfield image into a RGB image
void CxImage::Bitfield2RGB(BYTE *src, WORD redmask, WORD greenmask, WORD bluemask, BYTE bpp)
{
switch (bpp)
{
case 16:
break;
case 32:
{
// dword aligned width for 32 bit image
long effwidth4 = head.biWidth * 4;
long y4, y3, x4, x3;
BYTE * p = info.pImage; //指向位图像素数据的指针
// scan the buffer in reverse direction to avoid reallocations
for (long y=head.biHeight-1; y>=0; y--)
{
y4 = effwidth4 * y;

//对于高于8位以上的人位图info.dwEffWdith =
//(((24 * m_bmiHead.biWidth) + 31) / 32 * 4)
y3 = info.dwEffWidth * y;
for (long x = head.biWidth-1; x >= 0; x-- )
{
x4 = 4 * x + y4;
x3 = 3 * x + y3;
p[ x3] = src[ x4];
p[1+x3] = src[1+x4];
p[2+x3] = src[2+x4];
}
}
}

}
return;
}
追问
若是不借用CxImage类库,而只在控制台下,进行操作,这个函数也可以通用?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式