在图像或者视频处理过程中,debug时候可能需要查看图片和视频是否正确,需要将buffer给保存成图片格式,但是在试了网上一大堆失败的保存成bmp、jpeg格式图片的教程后,我觉得还是使用该方法作为debug的方法更快更好。
buf 按rgb rgb rgb … 格式排列。width和height指图片高度和宽度。
void rgb24toppm(uint8_t *buf, int width, int height)
{
FILE* fp = fopen("rgb24to.ppm","wb+");
write_ppm_header(fp);
// for(int j = height -1 ;j >=0 ;j--){
// fwrite(buf+j*width*3,1,width*3,fp);
// }
for(int j = 0; j < height;j++){
fwrite(buf+j*width*3,1,width*3,fp);
}
fclose(fp);
return;
}
void write_ppm_header(FILE *fp)
{
fprintf(fp,"P6\n");
fprintf(fp,"%d %d\n",SCR_WIDTH,SCR_HEIGHT);
fprintf(fp,"%d\n",255);
}