社区
图形处理/算法
帖子详情
如何求8位、24位BMP图像的每行的字节数
hongzhangli
2003-05-17 08:49:24
我看了一本关于数字图像处理的书,他提供的算法如下:
lLineBytes=WIDTHBYTES(m_nWidth*8),其中WIDTHBYTES的定义是:
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)我不明白为何用此公式;
m_nWidth是图像的宽度;请大侠帮忙解释一下公式.谢谢啦!
...全文
595
11
打赏
收藏
如何求8位、24位BMP图像的每行的字节数
我看了一本关于数字图像处理的书,他提供的算法如下: lLineBytes=WIDTHBYTES(m_nWidth*8),其中WIDTHBYTES的定义是: #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)我不明白为何用此公式; m_nWidth是图像的宽度;请大侠帮忙解释一下公式.谢谢啦!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hongzhangli
2003-05-18
打赏
举报
回复
谢谢各位大侠啦
chegtion
2003-05-17
打赏
举报
回复
在保存或显示的时候,bmp要求每行字节数是4的整数倍。
比如灰度图吧,每行宽度是191个象素即191bytes
如果要保存所有图像信息,你在写文件时每行字节数必须为
192=(191*1+3)/4*4;(也可通过位运算:(191*1+3)&~3)
如果是24位的彩色图,即每个象素有3个Bytes,只要把上式中*1换成*3即可。
thundered
2003-05-17
打赏
举报
回复
也可以这样算嘛,(Width * 3(24bit)/1(8bit) + 3 ) / 4 * 4, 这样不是很清楚了,我看到许多都是用WIDTHBYTES(bits)宏的,始做甬者可能是某本书上的,不过只要理解了BMP的格式,自己就可以写出其他的换算函数,我也看到过用循环来算的
houdy
2003-05-17
打赏
举报
回复
在BMP文件中,要求每一行的字节数必须是4的倍数,WIDTHBYTES(bits)这个定义的意思就是为了保证每行都是4的倍数,注意必须要这样,要不然你显示的图片内容就会错位。
rabithao
2003-05-17
打赏
举报
回复
在BMP文件中,要求每一行的字节数必须是4的倍数
cherishahu
2003-05-17
打赏
举报
回复
1。
中午就去买。
我马上就要叫作业了,可是我了图象处理的算法都看不懂啊!
wrcluomo
2003-05-17
打赏
举报
回复
《VISUAL C++数字图像处理>
出到第二版了.我用的还是一版.大一点的书店应该都有吧.还有N多图像处理的书.没MONEY
没有买.怕把老板给买急了.
Tue
2003-05-17
打赏
举报
回复
http://www.csdn.net/Dev/Format/
满意了吧,什么都有。
cherishahu
2003-05-17
打赏
举报
回复
我想请问一下哪儿有这样的书啊.
有电子的版的没?
qiufuwang
2003-05-17
打赏
举报
回复
up
duwenyong
2003-05-17
打赏
举报
回复
每一行的字节数必须是4的整倍数,只要调用
//WIDTHBYTES(bi.biWidth*bi.biBitCount)就能完成这一换算。举一个例
//子,对于2色图,如果图象宽是31,则每一行需要31位存储,合3个
//字节加7位,因为字节数必须是4的整倍数,所以应该是4,而此时的
//biWidth=31,biBitCount=1,WIDTHBYTES(31*1)=4,和我们设想的一样。
//再举一个256色的例子,如果图象宽是31,则每一行需要31个字节存
//储,因为字节数必须是4的整倍数,所以应该是32,而此时的
//biWidth=31,biBitCount=8,WIDTHBYTES(31*8)=32,我们设想的一样。你可
//以多举几个例子来验证一下
//LineBytes为每一行的字节数
LineBytes=(DWORD)WIDTHBYTES(bi.biWidth*bi.biBitCount);
图像
原始文件增加
BMP
头
本例程对16
位
深的原始数据增加了
BMP
头文件并可以正确浏览。16
位
的RGB属于非标准格式,对于
24
位
等标准
位
深的原始
图像
,可以做简单修改即可以使用。
基于
图像
信息隐藏LSB算法C#实现
本程序是基于
图像
进行信息隐藏,采用LSB算法,即最不重要
位
的思想,利用
bmp
图像
每个字节的最后一
位
嵌入信息,并不影响
图像
的效果。
FFmpeg4.3系列之31:庖丁解牛之
图像
格式与压缩原理及实战
FFmpeg系列之31FFmpeg第2季编解码专题之1:庖丁解牛之
图像
格式与压缩原理及实战----------------------------------------我将带领大家一起来学习:
bmp
/png/jpg/gif格式解析与lib
bmp
/libpng/jpeglib/giflib开源库实战;具体内容包括:庖丁解牛之
bmp
格式与压缩原理及实战、庖丁解牛之png格式与压缩原理及实战、庖丁解牛之jpg格式与压缩原理及实战、庖丁解牛之mjpeg格式与压缩原理及实战、庖丁解牛之gif格式与压缩原理及实战。 目前FFmpeg第二季【编解码专题】,主要包括以下课程:FFmpeg4.3系列之31:
图像
格式与压缩FFmpeg4.3系列之32:MPEG-1/2视频编解码FFmpeg4.3系列之33:H.264/H.265视频编码FFmpeg4.3系列之34:FFmpeg+DXVA2+D3D硬件加速FFmpeg4.3系列之35:FFmpeg+CUDA硬件加速
c语言解析
bmp
图片的实例
心血来潮想了解下常用图片的格式解析,翻看了一些资料后,发现最简单的是
bmp
格式,所以先拿它开刀。
BMP
格式 这种格式内的数据分为三到四个部分,依次是: 文件信息头 (14字节)存储着文件类型,文件大小等信息 图片信息头 (40字节)存储着
图像
的尺寸,颜色索引,
位
平面数等信息 调色板 (由颜色索引数决定)【可以没有此信息】
位
图数据 (由
图像
尺寸决定)每一个像素的信息在这里存储 一般的
bmp
图像
都是
24
位
,也就是真彩。每
8
位
为一字节,
24
位
也就是使用三字节来存储每一个像素的信息,三个字节对应存放r,g,b三原色的数据,每个字节的存贮范围都是0-255。 那么以此类推,32
位
图即每像素存储r,g
图像
处理 -
BMP
图像
行
字节数
BMP
是一种与硬件设备无关的
图像
文件格式,采用
位
映射存储格式。
BMP
文件的
图像
深度可选1bit、4bit、8bit及
24
bit。
位
图数据记录了
位
图的每一个像素值或该对应像素的颜色表的索引值,
BMP
文件存储
位
图数据时,
图像
的扫描方式是在行内按从左到右扫描、在行间从下到上扫描的顺序。Windows规定
图像
文件中,一个
图像
的扫描行所占的
字节数
必须是4的倍数(即以字为单
位
),不足的以0填充! ...
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章