关于BMP图像格式的问题,1bit到16个bit的图像分别代表什么?

凌波微搏 2007-04-01 02:06:54
通常说到16个bit的图像,8个bit的图像,这代表什么?这样的图像,每个象素占多大?想用一个short的二维数组来表示一个图像,每个数组位存放对应坐标的图像的颜色值。如何来进行这样的图像到数组的转换?
...全文
1546 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qdhuxp 2007-04-10
  • 打赏
  • 举报
回复
1bit是单色位图,一个象素用一个bit存储;
8bit表示256种颜色,一个像素用一个字节(8bit)存储;
16bit表示65536种颜色,一个像素用二个字节(16bit)存储;
24bit表示256*256*256种颜色,一个像素用三个字节存储。

....1楼2楼的基础有点差啊!
酒红绿叶 2007-04-10
  • 打赏
  • 举报
回复
1楼.8bit是1个象素占8bit.1个bit有0和1两种可能.
所以.8bit有2的8次方256种选择.
也就是通常的灰度图.
有0~255级的灰度表示.


2楼16位.是2个字节.具体大小也不是这么算的.

e_feeling 2007-04-09
  • 打赏
  • 举报
回复
1bit是单色位图,一个象素用一个bit存储;
8bit表示256种颜色,一个像素用一个字节(8bit)存储;
16bit表示65536种颜色,一个像素用二个字节(16bit)存储;
24bit表示256*256*256种颜色,一个像素用三个字节存储。
菜牛 2007-04-09
  • 打赏
  • 举报
回复
1楼错误,2楼错误
qqwwing 2007-04-01
  • 打赏
  • 举报
回复
直观的说,N位就代表这幅图像有2的N次方种颜色,像一位就有2的一次方即两种颜色,8位就有2的八次方即256种颜色,以此类推。

每像素所占的字节数就是八分之N,1bit的图每像素占八分之一字节,8bit图则每像素占八分之八即一字节,以此类推。

由LoadImage()将文件读入并得到位图句柄,用GetDIBits或者CreateDIBSection可以得到指向图像像素数据的指针,如果是24位位图,指针指向的就是颜色值,如果是小于24位颜色的位图,指针指向的是调色板索引,通过索引查讯调色板可以得到颜色值。
ipgk 2007-04-01
  • 打赏
  • 举报
回复
1bit是单色位图,用一个bit存储一个象素,所以只能存两种颜色,8bit就是用8个bit(就是一个字节)存储一个象素,能表示256种颜色,类似还有16位位图,24位位图,32位图等,24位位图能表示一千六百多万种颜色,称为真彩色。
laviewpbt 2007-04-01
  • 打赏
  • 举报
回复
16位的就表示一个像素占用的大小为16位,这样图片的大小就是width*height*16字节个大小。
可以用GetDIBits的方式得到数据,也可以直接从文件读取。
rommi 2007-04-01
  • 打赏
  • 举报
回复
8bit的图象RGBA各占8个bit,也就是说一个象素32位. 其他依次类推.
将图象读进内存可以用
LONG GetBitmapBits(
HBITMAP hbmp, // handle to bitmap
LONG cbBuffer, // number of bytes to copy
LPVOID lpvBits // buffer to receive bits
);

19,471

社区成员

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

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