写raw图
// .h 输出一张RAW图 返回0成功 1失败
int OutOneRawImage(std::unique_ptr<unsigned char[]> &one_char,char* _file_name);
// .cpp
int OutOneRawImage(std::unique_ptr<unsigned char[]> &one_char, char* _file_name)
{
if (one_char == nullptr) {
std::cout << "输出RAW图时图像缺失!";
return 1;
}
FILE *fpdst = fopen(_file_name, "wb"); //每次写入时,"wb'会覆盖当前;"ab'则往后写入
fwrite(one_char.get(), sizeof(unsigned char), image_size_, fpdst);
fclose(fpdst);
return 0;
}
读raw图
bTemp 为图像数据,filelen 为数据长度。
FILE *fp;
fp = fopen(_image_path, "rb");
if (fp == NULL)
{
std::cout << "打开文件失败";
return NULL;
}
fpos_t startpos, endpos;
fseek(fp, 0, SEEK_END);
fgetpos(fp, &endpos);
fseek(fp, 0, SEEK_SET);
fgetpos(fp, &startpos);
long filelen = (long)(endpos - startpos);
unsigned char *bTemp = NULL;
bTemp = (unsigned char*)malloc(filelen);
if (bTemp == NULL)
{
fclose(fp);
return NULL;
}
memset(bTemp, 0, filelen);
fread(bTemp, filelen, 1, fp);
fclose(fp);
可能遇到的问题
1.
解决方法:如图位置添加_CRT_SECURE_NO_WARNINGS;