1.将opencv的Mat进行jpeg编码
std::vector<unsigned char> buf;
cv::imencode(".jpg", pImage, buf);
2.修改vector中的dpi
buf[0x0D] = 1;// - 设置使用图片密度单位
// - 水平密度,水平分辨率
buf[0x0E] = 0;
buf[0x0F] = 20;
// - 垂直密度,垂直分辨率
buf[0x10] = 0;
buf[0x11] = 20;
3.写入文件
FILE *f = fopen(W2A(m_strJpg.GetBuffer()),"wb");
fwrite(&buf[0],1,buf.size(),f);
fclose(f);
以上方法经过时间统计与imwrite()保存jpg的时间差不多。