package com.dahua.netsdk.module.entity;
|
|
import java.awt.image.BufferedImage;
|
import java.io.*;
|
|
/**
|
* @author 47081
|
* @version 1.0
|
* @description bmp文件
|
* @date 2020/9/27
|
*/
|
public class BmpFile {
|
private byte[] fileHeader;
|
private byte[] infoHeader;
|
private int width;
|
private int height;
|
private byte[][] data;
|
public BmpFile(){
|
fileHeader=new byte[14];
|
infoHeader=new byte[40];
|
}
|
|
/**
|
* 读取文件
|
* @param src bmp文件
|
* @return
|
*/
|
public boolean read(String src) throws IOException {
|
FileInputStream file=new FileInputStream(src);
|
BufferedInputStream buffer=new BufferedInputStream(file);
|
//读取文件头和信息头
|
buffer.read(fileHeader,0,14);
|
buffer.read(infoHeader,0,40);
|
//翻译bmp文件数据,将字节数据转成int
|
//得到宽度和高度
|
byte[] temp=new byte[4];
|
System.arraycopy(infoHeader,4,temp,0,4);
|
width=byte2Int(temp);
|
System.arraycopy(infoHeader,8,temp,0,4);
|
height=byte2Int(temp);
|
buffer.close();
|
return true;
|
}
|
|
/**
|
* byte to int
|
*
|
* @param b bmp
|
* @return
|
* @throws IOException
|
*/
|
private int byte2Int(byte[] b) throws IOException {
|
int num = (b[3] & 0xff << 24) | (b[2] & 0xff) << 16 | (b[1] & 0xff) << 8 | (b[0] & 0xff);
|
return num;
|
}
|
|
}
|