Android上层保存图片需要大量的内存空间,所以在此用C++底层保存图片,减少上层的内存申请。在此做一下记录。
函数接收的参数依次为:图片名称,图片宽度,图片高度,图片数据。
int CSaveImage::saveBmp(const char* name,int width,int height,unsigned char* data)
{
//int widthStep = (((width * 24) + 31) & (~31)) / 8 ; //每行实际占用的大小(每行都被填充到一个4字节边界)
int size = width*height*2; // 每个像素点3个字节
// 位图第一部分,文件信息
BMPFILEHEADER_T bfh;
bfh.bfType = 0x4d42; //bm
bfh.bfSize = size // data size
+ sizeof(BMPFILEHEADER_T) // first section size
+ sizeof(BMPINFOHEADER_T); // second section size
bfh.bfReserved1 = 0; // reserved
bfh.bfReserved2 = 0; // reserved
bfh.bfOffBits = bfh.bfSize - size;
//bfh.bfSize = (bfh.bfSize + 3)&~3;
size = bfh.bfSize - bfh.bfOffBits;
// 位图第二部分,数据信息
BMPINFOHEADER_T bih;
bih.biSize = sizeof(BMPINFOHEADER_T);
bih.biWidt