新增设置图像压缩率
This commit is contained in:
parent
21b68c36b4
commit
be5d1e2fb0
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue