前言:
可能也有朋友在使用这位大佬的代码手把手带你模仿 海康威视sdk+Qt 的二次开发(下)_linux qt 封装海康sdk-CSDN博客时出现保存图片的错误,可以此篇为参考修改。
问题一:在widget.cpp中的第308和309行,参数类型设置错误
MV_SAVE_IMG_TO_FILE_PARAM stSaveFileParam;
因为在下面第349行代码中
int nRet = m_pcMyCamera->SaveImageToFile(&stSaveFileParam);
SaveImageToFile函数需要的参数类型为MV_SAVE_IMAGE_TO_FILE_PARAM_EX
问题二:stSaveFileParam.pImagePath参数设置
修改完第一个结构体类型后,再修改它的结构体成员,并在后面sprintf_s的传参中传入char* pcImagePath类型的参数;
typedef struct _MV_SAVE_IMAGE_TO_FILE_PARAM_EX_
{
unsigned int nWidth; // [IN] 图像宽
unsigned int nHeight; // [IN] 图像高
MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
unsigned char* pData; // [IN] 输入数据缓存
unsigned int nDataLen; // [IN] 输入数据大小
MV_SAVE_IAMGE_TYPE enImageType; // [IN] 输入图片格式
char* pcImagePath; // [IN] 输入文件路径
unsigned int nQuality; // [IN] JPG编码质量(50-99],其它格式无效
int iMethodValue; // [IN] 插值方法 0-快速 1-均衡 2-最优(其它值默认为最优) 3-最优+
unsigned int nReserved[8];
//char pImagePath[256]; ///< [IN] \~chinese 输入文件路径 \~english Input file path
}MV_SAVE_IMAGE_TO_FILE_PARAM_EX;
sprintf_s(stSaveFileParam.pcImagePath, 256,"C:\\new\\Image_w%d_h%d_fn%03d.bmp", stSaveFileParam.nWidth, stSaveFileParam.nHeight, m_stImageInfo.nFrameNum);
关于文件路径参数可以按自己的实际情况修改,至此修改完成。