新增设置图像压缩率
This commit is contained in:
parent
21b68c36b4
commit
be5d1e2fb0
|
@ -20,7 +20,7 @@ void* m_obj_usb = nullptr;
|
||||||
void* m_obj_img = nullptr;
|
void* m_obj_img = nullptr;
|
||||||
static const char* SDKVersion = "1.22.9.30";
|
static const char* SDKVersion = "1.22.9.30";
|
||||||
char deviceList[60];
|
char deviceList[60];
|
||||||
|
unsigned int compression_data = 80;
|
||||||
HG_OnDevice_Event_Callback m_callback_OnDevcie_Event = nullptr;
|
HG_OnDevice_Event_Callback m_callback_OnDevcie_Event = nullptr;
|
||||||
HG_OnImage_Callback m_callback_OnImage_Event = nullptr;
|
HG_OnImage_Callback m_callback_OnImage_Event = nullptr;
|
||||||
unsigned int m_scannum = 0;
|
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);
|
cv::cvtColor(mat, mat, cv::COLOR_RGB2BGR);
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<int>compress;
|
vector<int>compress;
|
||||||
|
if (img_type_ == ".jpg")
|
||||||
compress.push_back(CV_IMWRITE_JPEG_QUALITY);
|
compress.push_back(CV_IMWRITE_JPEG_QUALITY);
|
||||||
compress.push_back(80); //图像压缩参数,该参数取值范围为0-100,数值越高,图像质量越高
|
else if (img_type_ == ".png")
|
||||||
|
compress.push_back(CV_IMWRITE_PNG_COMPRESSION);
|
||||||
cv::imencode(img_type_, mat, bmpdata, compress);
|
compress.push_back(compression_data);
|
||||||
|
|
||||||
|
cv::imencode(img_type_, mat, bmpdata, compress); //图像压缩参数,该参数取值范围为0-100,数值越高,图像质量越高
|
||||||
img.height = mat.rows; //info.height
|
img.height = mat.rows; //info.height
|
||||||
img.width = mat.cols;// info.width;
|
img.width = mat.cols;// info.width;
|
||||||
img.pimgdata = bmpdata.data();
|
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.bitdepth = (mat.channels() == 3) ? 24 : 8;
|
||||||
img.bytesperline = mat.step;
|
img.bytesperline = mat.step;
|
||||||
|
|
||||||
|
|
||||||
m_callback_OnImage_Event(&img, m_obj_img);
|
m_callback_OnImage_Event(&img, m_obj_img);
|
||||||
|
|
||||||
if (image2 != (HGImage)image)
|
if (image2 != (HGImage)image)
|
||||||
|
@ -197,17 +199,20 @@ void HG_Init()
|
||||||
}
|
}
|
||||||
void HG_ImgSaveType(const char* img_type)
|
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))
|
if ((strcmp(img_type, ".jpg") == 0) || (strcmp(img_type, ".png") == 0))
|
||||||
{
|
|
||||||
img_type_ = img_type;
|
img_type_ = img_type;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
img_type_ = ".jpg";
|
img_type_ = ".jpg";
|
||||||
cout << "error unsupport image type,default image buffer will be jpg format" << endl;
|
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)
|
char* HG_GetDevices(char* strSeperator)
|
||||||
|
@ -852,6 +857,14 @@ int HG_REBOOT_DEVICE(HG_Scanner_Handle pScanner)
|
||||||
{
|
{
|
||||||
return HGLib_DeviceRestart(HGLibDevice(pScanner)) ? 1 : -1;
|
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)
|
/*void img2tiff(TIFF* tif_file, int pageIndex, cv::Mat image, int jpg_quality)
|
||||||
{
|
{
|
||||||
if (!tif_file)
|
if (!tif_file)
|
||||||
|
|
|
@ -432,6 +432,14 @@ extern "C" {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>-1:非正常;1:重启设备</returns>
|
/// <returns>-1:非正常;1:重启设备</returns>
|
||||||
DLL_HG_SCHANNER_API int HG_REBOOT_DEVICE(HG_Scanner_Handle pScanner);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue