linux C++环境下,dump图片注意细则

   目标,将camera的预览帧根据自定义条件进行dump,因此我们需要先创建一个文件 path/name,path必须存在,如果不存在则会

open()失败,另外项目中sdcard/路径下,怎么都open fail,包括关闭seLinux,然后转移路径到data目录下,最终成功,另外在使用sprintf函数进行格式化文件名时,出现一个问题是,定义的char* var必须要先进行分配内存,或者定义为字符数组,否则会出现,将格式化字符串写入NULL地址的指针,段错误 (核心已转储)。

  代码如下:

bool dump_Bmp_Img(MUInt8* addr, MUInt32 size, MUInt32 width, MUInt32 height, MChar * preFilename)               
{
    char fileName[64] = {0};                                                                                                                                                                             
    int fd;
    XLOGI("+");

    sprintf(fileName, "/data/misc/picdump/%s_%dx%d.yuv", preFilename, width, height);                           
    fd = open(fileName, O_WRONLY |O_CREAT,0777); 
    if (fd < 0) {
        ALOGE("fail to open file to save img: %s ,fd = %d", fileName,fd);                                       
        return false;
    }   

    int len = write(fd,addr, size);                                                                             

    close(fd);

    XLOGI("-");
    return true;
}

 

你可能感兴趣的:(linux C++环境下,dump图片注意细则)