社区
资源
帖子详情
如何知道一个BMP图象是256色还是24位色???
petrain
2002-04-15 10:14:50
如题!!
谢谢
...全文
632
10
打赏
收藏
如何知道一个BMP图象是256色还是24位色???
如题!! 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lihuaiyuan
2002-05-24
打赏
举报
回复
这些小问题,在msdn中多的是,就算有更复杂的格式msdn中还有,为何不看?
hhoking
2002-04-23
打赏
举报
回复
加31是为了得到4字节的倍数,不信你试试?
智慧的星球
2002-04-19
打赏
举报
回复
为什么要加31呢
智慧的星球
2002-04-19
打赏
举报
回复
可是关于扫描行字节数计算方法,我还是不太明白,谁能讲一下,谢谢
hhoking
2002-04-17
打赏
举报
回复
说明:相关资料都可以从CSDN中获得。一楼的兄弟的资料就是翻译的CSDN。
yang_b_f
2002-04-16
打赏
举报
回复
苯猫怎么这么多的资料阿?小弟实在是佩服的很了。
用acdsee打开就立刻看到了。方便快捷。
wide288
2002-04-16
打赏
举报
回复
我是非常想对bmp进行编程的,也就很想知道第二位与第三位网友的中文资料那还有更多的内容望告知一下。
谢谢了
wide288@wbind.com
hhoking
2002-04-15
打赏
举报
回复
楼上兄弟的 3. 位图信息头中:biBitCount的数据就是标明该位图的深度的。
= 1 为两色图(一般是黑白色);
= 4 为16色;
= 8 就是256色啦!
= 16 是16位增强色;
= 24 就是24位真彩色啦!
= 32 是32位高彩色。
rivershan
2002-04-15
打赏
举报
回复
1. BMP文件组成
BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
2. BMP文件头
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下:
typedef struct tagBITMAPFILEHEADER
{
WORDbfType; // 位图文件的类型,必须为BM
DWORD bfSize; // 位图文件的大小,以字节为单位
WORDbfReserved1; // 位图文件保留字,必须为0
WORDbfReserved2; // 位图文件保留字,必须为0
DWORD bfOffBits; // 位图数据的起始位置,以相对于位图
// 文件头的偏移量表示,以字节为单位
} BITMAPFILEHEADER;
3. 位图信息头
BMP位图信息头数据用于说明位图的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数
LONGbiWidth; // 位图的宽度,以像素为单位
LONGbiHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的级别,必须为1
WORD biBitCount// 每个像素所需的位数,必须是1(双色),
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),
// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数
LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数
DWORD biClrImportant;// 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;
4. 颜色表
颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:
typedef struct tagRGBQUAD {
BYTErgbBlue;// 蓝色的亮度(值范围为0-255)
BYTErgbGreen; // 绿色的亮度(值范围为0-255)
BYTErgbRed; // 红色的亮度(值范围为0-255)
BYTErgbReserved;// 保留,必须为0
} RGBQUAD;
颜色表中RGBQUAD结构数据的个数有biBitCount来确定:
当biBitCount=1,4,8时,分别有2,16,256个表项;
当biBitCount=24时,没有颜色表项。
位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 位图信息头
RGBQUAD bmiColors[1]; // 颜色表
} BITMAPINFO;
5. 位图数据
位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数:
当biBitCount=1时,8个像素占1个字节;
当biBitCount=4时,2个像素占1个字节;
当biBitCount=8时,1个像素占1个字节;
当biBitCount=24时,1个像素占3个字节;
Windows规定一个扫描行所占的字节数必须是
4的倍数(即以long为单位),不足的以0填充,
一个扫描行所占的字节数计算方法:
DataSizePerLine= (biWidth* biBitCount+31)/8;
// 一个扫描行所占的字节数
DataSizePerLine= DataSizePerLine/4*4; // 字节数必须是4的倍数
位图数据的大小(不压缩情况下):
DataSize= DataSizePerLine* biHeight;
jinbing
2002-04-15
打赏
举报
回复
用acdsee看看
DPP.rar_
256
色
_
bmp
_
bmp
256
_dpp_visual c++ 数字
图象
处理
一套较完整的数字
图象
处理程序源码,功能齐全,目前只支持
256
色
BMP
位图
图象
合并程序.rar_
bmp
256
_image merging_
图象
合并
256
色
BMP
图象
的合并程序,希望对大家有用,
显示
BMP
图象
的程序.rar_FPGA 显示图片_
bmp
256
_
bmp
显示 屏幕_vga image_显示
bmp
640*480
256
色
.
BMP
文件显示程序,可以浏览、同时显示 4 幅
图象
,也可以 在屏幕上开
一个
窗口显示 .
BMP
图象
,并可以使用上下左右箭头键、PageUp/PageDown、Ctrl+Left、Ctrl+Right键浏览整幅
图象
,在S3、ATI等VGA卡上 调试通过
BMP
图象
格式
bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜
色
表(在真彩
色
模式无颜
色
表)和图像数据区组成
图象
转换Jpg2
Bmp
关于Jpg转换为
bmp
的程序,对于初学者有非常好.
资源
2,586
社区成员
18,437
社区内容
发帖
与我相关
我的任务
资源
VC/MFC 资源
复制链接
扫一扫
分享
社区描述
VC/MFC 资源
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章