24位的位图,用GetBitmap() 读取的值确是32。高手帮帮忙 bitmap.bmBitsPixel = 32 急

hoocode 2006-10-10 02:30:20
24位的位图,用GetBitmap() 读取的值确是32。高手帮帮忙 bitmap.bmBitsPixel = 32 急
...全文
559 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcjcom830 2006-10-14
  • 打赏
  • 举报
回复
用GetDIBBits
aj3423 2006-10-10
  • 打赏
  • 举报
回复
如果用GDI+的话可以这样

PixelFormat pixelFormat;
Bitmap* bitmap;

bitmap = new Bitmap(L"file.png");
pixelFormat = bitmap->GetPixelFormat();

switch ( pixelFormat ){
case PixelFormat24bppRGB:
//24位图片
break;
case PixelFormat8bppIndexed:
//8位
break;
//还有32位等等
default:
break;
}
hoocode 2006-10-10
  • 打赏
  • 举报
回复
我试了试。改变分辨率后。16位。 则bmBitsPixel = 16
32色分辨率 则bmBitsPixel = 32
看来和机器分辨率有关系。看来扫描一行像素不能用bmbitsPixel 得值。对吗?

另外。我CreateBitmap保存位图时bmbitsPixel 是多少,图像就是多少色深。觉得别扭
ringphone 2006-10-10
  • 打赏
  • 举报
回复
24位的位图存成文件是3个字节一像素,读入内存显示是4字节一像素,因为没有3字节的数据类型。bitmap.bmBitsPixel = 32 没什么奇怪的。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧