`
C_SHaDow
  • 浏览: 49982 次
  • 性别: Icon_minigender_1
  • 来自: 大同
社区版块
存档分类
最新评论

24位真彩BMP格式

J# 
阅读更多

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的...

 

 

1
0
分享到:
评论

相关推荐

    三分钟解析24位真彩BMP格式文件

    NULL 博文链接:https://wojiaolongyinong.iteye.com/blog/1896092

    BMP图片读写

    24位真彩bmp格式图片读入,转成8位灰度bmp文件写入文件,完整C++工程,开发工具VC6.0

    靖源万能真彩图标activex控件

    是一款生成24位真彩图标的软件,软件开发者的福音,从今天开始,您不用再为图标真彩的问题所困扰,本控件彻底解决了delphi中ticon只支持16色和固定32X32大小的难题,完全支持保存为24位真彩图标!主要特点如下: 1.把icon...

    视频图像处理工具合集(YUV,BMP)

    输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2...

    yuvtools.rar_YUV2BMP.exe_YUVTools rgb装bmp_YUVviewer.exe_yuvviewe

    该文件包括一些内容,可配套图像处理使用 ...输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值

    BMP2BIN.exe

    可以批量(目录及子目录下的所有文件)将BMP格式的图片转换为BIN文件 ...转换的规则 在博客中有具体介绍 16和24位的BMP 都可以转为16真彩的BIN https://blog.csdn.net/qq_29624813/article/details/103729326

    将rgb真彩图像转化为256色

    可将rgb真彩图片转化为256色灰度图,保存为bmp格式的图片

    YUV相关测试工工具

    输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2...

    工具软件YUV转换浏览

    输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2...

    靖源bmp2avi

    靖源bmp2avi是一款把多个bmp文件生成avi动画的软件,支持32位真彩,支持添加字幕,支持压缩格式,支持背景音乐,支持生成压缩格式avi。可把照片生成为avi动画,再用别的工具转化一下,即可在vcd上放。

    图像格式转换源码 文件后缀没有做判断处理

    目前支持写入的目标格式有:标准JPEG(全部格式)、BMP(24位)、TIFF(灰度和真彩)、PNG(24位)、PPM(文本和二进制模式)、PGM(文本和二进制模式)、PBM(文本和二进制模式)、PCX(24位)、PICS(24位)、SGI...

    图像格式转换支持库2.0#4版(静态版)

    RLE压缩)、PCD(取第三幅),目前支持写入的目标格式有:标准JPEG(全部格式)、BMP(24位)、TIFF(灰度和真彩)、PNG(24位)、PPM(文本和二进制模式)、PGM(文本和二进制模式)、PBM(文本和二进制模式)、PCX...

    e语言-图像格式转换源码 文件后缀没有做判断处理

    目前支持写入的目标格式有:标准JPEG(全部格式)、BMP(24位)、TIFF(灰度和真彩)、PNG(24位)、PPM(文本和二进制模式)、PGM(文本和二进制模式)、PBM(文本和二进制模式)、PCX(24位)、PICS(24位)、SGI...

    yuv与rgb转换与处理工具

    输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2...

    图像文件格式转换

    使用Matlab或者VC实现下面三个内容,注意区分真彩图像和索引...1、 将硬盘上的BMP格式图像导入内存并显示 2、 将内存中的图像以BMP格式存到硬盘上 3、 实现不同图像格式(BMP、JPEG、TIFF、GIF、PNG等)间的相互转换

    yuvtools_v2

    输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2...

Global site tag (gtag.js) - Google Analytics