格式转换——bmp 2 yuv

这篇博客详细介绍了BMP文件的结构,包括位图文件头和位图信息头,并探讨了字节序在不同系统中的差异。文章重点讲解了如何通过C#将24bit BMP文件转换为YUV格式,涉及倒序读取和转换过程,以及实验中的关键代码实现。实验结果显示,转换后的YUV文件需要特定播放器支持才能正确显示。
摘要由CSDN通过智能技术生成

一、BMP文件的组成结构

        BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用广泛。它采用位映射存储格式,除了图像深度可选以外,在绝大多数应用中不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit、16bit及24bit。图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。

典型的BMP图像文件组成
位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息
位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息

调色板,这个部分是可选的;

有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板

位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。

 1. 位图文件头主要包括:

2.位图信息头主要包括:

 3.调色板实际上是一个数组,它所包含的元素与位图所具有的颜色数相同,决定于biClrUsed和biBitCount字段。数组中每个元素的类型是一个RGBQUAD结构。真彩色无调色板部分。

 4.紧跟在调色板之后的是图像数据字节阵列。对于用到调色板的位图,图像数据就是该像素颜色在调色板中的索引值(逻辑色)。对于真彩色图,图像数据就是实际的R、G、B值。

图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。规定每一扫描行的字节数必须是4的整倍数,也就是DWO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值