BMP图片详解
johnnian opened this issue · 0 comments
johnnian commented
最近在研究处理BMP的文件,顺带总结下相关知识点!
BMP文件结构
//byteBuffer 是图片的byte数据
//数据区的偏移量
byteBuffer.flip();
byte[] dataOffsetArr = new byte[4];
byteBuffer.position(10);
byteBuffer.get(dataOffsetArr);
int dataOffset = HexUtils.byteArrayToInt(dataOffsetArr, false);
logger.info("size:" + dataOffset);
//图像的宽度
byte[] widthArr = new byte[4];
byteBuffer.position(18);
byteBuffer.get(widthArr);
int width = HexUtils.byteArrayToInt(widthArr, false);
logger.info("width:" + width);
//图像的高度
byte[] highArr = new byte[4];
byteBuffer.position(22);
byteBuffer.get(highArr);
int high = HexUtils.byteArrayToInt(highArr, false);
logger.info("width:" + high);
//图像的深度
byte[] depthArr = new byte[4];
byteBuffer.position(28);
byteBuffer.get(depthArr);
int depth = HexUtils.byteArrayToInt(depthArr, false);
logger.info("depth:" + depth);
//图像的深度
byte[] sizeArr = new byte[4];
byteBuffer.position(34);
byteBuffer.get(sizeArr);
int dataSize = HexUtils.byteArrayToInt(sizeArr, false);
logger.info("dataSize:" + dataSize);
//数据区
byte[] bmpData = new byte[dataSize];
byteBuffer.position(dataOffset);
byteBuffer.get(bmpData);