BMP文件格式分析有很多,官方的资料已经通通涵盖在那份附件里了。这里具体些两个我遇到的问题...
No.1 BMP文件中低位在前。在读超过两个字节表示的数据时要格外小心一点:比如一个四字节的数据,共32位。这32位是一个整体,不能分成4个8位来看。以下是我的代码:
/**
* 读取位图文件中的数字型标签
* @param dins 数据输入流对象
* @param tagLen 该数字型标签的长度
* @return 位图文件中的数字型标签。读取异常则返回-1。
*/
private int readFileSize(java.io.DataInputStream dins, int tagLen){
int fileSize = 0;
try{
byte[][] size = new byte[tagLen][8];
//索引0->3,低位->高位。
for(int i=0; i<tagLen; i++){
byte s = dins.readByte();
if(s<0){
short ss = (short) (s + 256);
size[i] = myBitSet(ss);
}else{
size[i] = myBitSet(s);
}
for(int j=0; j<8; j++){
fileSize += size[i][j] * Math.pow(2, (i * 8 + j));
}
}
return fileSize;
}catch(Exception e){
e.printStackTrace();
return -1;
}
/**
* 有一个byte值得到一个byte数组
* @param b byte型值
* @return 按索引0->7,低位->高位
*/
private byte[] myBitSet(short b){
byte[] bs = new byte[8];
for(int i=0; i<8; i++){
bs[i] = (byte) (b%2);
b = (byte) (b/2);
}
return bs;
}
No.2 就是关于官方资料中不太明确的比特补满。这里只明确:它是在每一行的末尾如果出现不满足4的倍数时不上几个字节。我做的测试文件中,除四后的余数为3的,只需在每行末尾忽略一个字节;余数为1的...(我是没忽略什么也读过来了);目前还没找到余数为2的...
分享到:
相关推荐
**三分钟解析24位真彩BMP格式文件** BMP(Bitmap)是Windows操作系统中最常见的位图图像格式,它不包含任何压缩,因此文件体积较大,但图像质量较高。在24位真彩BMP格式中,每个像素由3个字节表示,分别代表红、绿...
32位BMP格式意味着每个像素有8位红、绿、蓝(RGB)分量以及额外的8位Alpha通道,用于表示透明度,这使得32位BMP非常适合用于用户界面(UI)开发,因为它可以处理复杂的透明效果。 描述中提到的“32位真彩UI开发专用...
真彩色图像使用多个通道(通常是红、绿、蓝)来表示像素颜色,每种颜色使用8位,总共24位。这种表示方式可以显示大约1670万种颜色。在BMP文件中,真彩色图像通常没有颜色表,而是直接存储像素的RGB值。 4. 创建BMP...
BMP是Microsoft Windows操作系统中的位图文件格式,支持多种位深度,包括24位真彩色和8位索引颜色。24位真彩色图像每个像素由红、绿、蓝三个颜色通道组成,每个通道8位,总共24位。而8位的BMP图像通常包含一个颜色...
在早期的Windows系统中,工具条的图像通常限制为256色,而在现代系统中,我们追求更高的色彩质量,即真彩色(通常指24位色,每个像素包含红、绿、蓝三个颜色通道,每个通道8位)。 制作真彩工具条涉及到的关键技术...
是一款生成24位真彩图标的软件,软件开发者的福音,从今天开始,您不用再为图标真彩的问题所困扰,本控件彻底解决了delphi中ticon只支持16色和固定32X32大小的难题,完全支持保存为24位真彩图标!主要特点如下: 1.把icon...
标题"800 * 600 真彩显示bmp文件"表明我们要讨论的是一个使用C语言编写的程序,该程序能显示分辨率为800像素宽、600像素高的、拥有64K色(即16位色)的BMP图像。 在C语言中,处理BMP文件通常涉及以下几个关键知识点...
BMP 文件格式是图像文件的一种常见格式,它由文件头、位图信息头、颜色信息和图形数据四部分组成。下面对每个部分进行详细介绍: 1. 文件头(BITMAPFILEHEADER) 文件头是 BMP 文件的开头部分,它包含了 BMP 文件...
位图,也称为BMP文件,是Windows操作系统中常见的图像文件格式,支持24位和16位真彩色。在某些场景下,如旧设备显示、网络传输或内存优化,可能需要将这些高色彩深度的位图转换为256色或者黑白位图。这个“一个效果...
该文件包括一些内容,可配套图像处理使用 ...输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值
输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2...
可以批量(目录及子目录下的所有文件)将BMP格式的图片转换为BIN文件 ...转换的规则 在博客中有具体介绍 16和24位的BMP 都可以转为16真彩的BIN https://blog.csdn.net/qq_29624813/article/details/103729326
7. **格式支持**:广泛支持JPEG、PNG、BMP、TIFF、PSD等多种图像格式,方便导入导出。 8. **批处理功能**:一键处理多个文件,提高工作效率。 9. **历史记录**:保存编辑步骤,随时回溯到任何修改前的状态。 10. **...
在主函数`main`中,首先打开输入文件并检查是否为BMP格式,以及是否为24位真彩图像。然后,创建一个新的输出文件用于写入处理后的图像数据。在读取图像数据时,程序逐行处理,对于每行中的每个像素,调用`isred`函数...
JPEG支持24位真彩色,同时还有8位灰度图像模式。文件扩展名通常为.jpg或.jpeg。 **2. BMP格式详解** 与JPEG不同,BMP格式采用无损压缩或不压缩的方式存储图像,保留了原始数据的所有细节,因此BMP文件通常较大。BMP...
通常,这样的程序会读取RGB真彩图像,对每个像素进行处理,然后将结果保存为8位的BMP格式文件。BMP是一种常见的位图格式,支持多种色彩深度,包括8位,且结构相对简单,便于处理。 “www.pudn.com.txt”可能是提供...
相比于其他图像格式(如JPEG、PNG等),BMP格式的主要特点是无损、未压缩,并且包含完整的色彩信息,因此在图像质量方面表现优异,但文件体积相对较大。 #### 二、BMP文件结构 BMP文件可以分为四个主要部分: 1. ...