新增设置图像压缩率

This commit is contained in:
13038267101 2022-11-22 17:05:53 +08:00
parent 21b68c36b4
commit be5d1e2fb0
2 changed files with 37 additions and 16 deletions

View File

@ -20,7 +20,7 @@ void* m_obj_usb = nullptr;
void* m_obj_img = nullptr;
static const char* SDKVersion = "1.22.9.30";
char deviceList[60];
unsigned int compression_data = 80;
HG_OnDevice_Event_Callback m_callback_OnDevcie_Event = nullptr;
HG_OnImage_Callback m_callback_OnImage_Event = nullptr;
unsigned int m_scannum = 0;
@ -69,12 +69,15 @@ static void HGAPI DeviceScanImageFunc(HGLibDevice device, HGLibImage image, HGPo
{
cv::cvtColor(mat, mat, cv::COLOR_RGB2BGR);
}
vector<int>compress;
if (img_type_ == ".jpg")
compress.push_back(CV_IMWRITE_JPEG_QUALITY);
compress.push_back(80); //图像压缩参数该参数取值范围为0-100数值越高图像质量越高
cv::imencode(img_type_, mat, bmpdata, compress);
else if (img_type_ == ".png")
compress.push_back(CV_IMWRITE_PNG_COMPRESSION);
compress.push_back(compression_data);
cv::imencode(img_type_, mat, bmpdata, compress); //图像压缩参数该参数取值范围为0-100数值越高图像质量越高
img.height = mat.rows; //info.height
img.width = mat.cols;// info.width;
img.pimgdata = bmpdata.data();
@ -83,7 +86,6 @@ static void HGAPI DeviceScanImageFunc(HGLibDevice device, HGLibImage image, HGPo
img.bitdepth = (mat.channels() == 3) ? 24 : 8;
img.bytesperline = mat.step;
m_callback_OnImage_Event(&img, m_obj_img);
if (image2 != (HGImage)image)
@ -197,17 +199,20 @@ void HG_Init()
}
void HG_ImgSaveType(const char* img_type)
{
if (img_type)
{
if (!img_type)
return;
if ((strcmp(img_type, ".jpg") == 0) || (strcmp(img_type, ".png") == 0))
{
img_type_ = img_type;
}
else
{
img_type_ = ".jpg";
cout << "error unsupport image type,default image buffer will be jpg format" << endl;
}
if ((strcmp(img_type, ".png") == 0))
{
compression_data = 3;
}
}
char* HG_GetDevices(char* strSeperator)
@ -852,6 +857,14 @@ int HG_REBOOT_DEVICE(HG_Scanner_Handle pScanner)
{
return HGLib_DeviceRestart(HGLibDevice(pScanner)) ? 1 : -1;
}
void HG_SET_IMG_COMPRESSION(unsigned int compressiondata)
{
if (img_type_ ==".png")
{
compressiondata /= 10;
}
compression_data = compressiondata;
}
/*void img2tiff(TIFF* tif_file, int pageIndex, cv::Mat image, int jpg_quality)
{
if (!tif_file)

View File

@ -432,6 +432,14 @@ extern "C" {
/// </summary>
/// <returns>-1:非正常;1:重启设备</returns>
DLL_HG_SCHANNER_API int HG_REBOOT_DEVICE(HG_Scanner_Handle pScanner);
/// <summary>
/// 根据 HG_ImgSaveType 设置图像压缩率默认JPG
/// 设置图像压缩率JPG 默认80 格式:1-100 值越大压缩比例越低,图像质量越高。
/// 设置图像压缩率PNG 默认30) 格式:10的整数倍10 20 30....100 值越大压缩比例越高,图像质量越低。
/// </summary>
/// <returns>NULL</returns>
DLL_HG_SCHANNER_API void HG_SET_IMG_COMPRESSION(unsigned int compressiondata);
#ifdef __cplusplus
}
#endif