完善创建多页tiff接口

This commit is contained in:
yangjiaxuan 2023-01-10 14:24:28 +08:00
parent 5c6aceb694
commit de1fb75c42
1 changed files with 25 additions and 15 deletions

View File

@ -914,32 +914,42 @@ void HG_SET_IMG_COMPRESSION(unsigned int compressiondata)
}*/
DLL_HG_SCHANNER_API int HG_Create_MultiTiff(char** srcFiles, int srcnum, char* dstFile)
{
/*int ret = 0;
int ret = 0;
if (dstFile == nullptr || srcFiles == nullptr)
return ret;
std::string dstfilepath(dstFile);
LOG("dstFile = %s \n", dstfilepath.c_str());
TIFF* tif_file = TIFFOpen(dstfilepath.c_str(), "w");
if (!tif_file)
return ret;
printf("dstFile = %s \n", dstfilepath.c_str());
int pageIndex = 0;//init page number
HGImgFmtLoadInfo info;
HGImage hgimg = NULL;
HGTiffWriter tifwriter;
HGImgFmt_OpenTiffWriter(dstfilepath.c_str(), &tifwriter);
HGTiffSaveInfo saveinfo;
saveinfo.compression = HGIMGFMT_TIFFCOMP_JPEG;
saveinfo.jpegQuality = 90;
saveinfo.resolutionUnit = HGIMGFMT_TIFFRESUNIT_INCH;
HGResult hgret;
for (int i = 0; i < srcnum; i++)//convert imgs to tiff loop
{
printf("filepath = %s \n", srcFiles[i]);
std::string filepath(srcFiles[i]);
if (filepath.length() > 4)
{
cv::Mat img = cv::imread(srcFiles[i], cv::ImreadModes::IMREAD_ANYCOLOR);
if (!img.empty())
hgret = HGImgFmt_LoadImage(srcFiles[i], 0, &info, 0, 0, &hgimg);
if (hgret == HGBASE_ERR_OK)
{
if (img.channels() == 3)
cv::cvtColor(img, img, CV_BGR2RGB);
img2tiff(tif_file, pageIndex, img, 80);
pageIndex++;
saveinfo.xResolution = info.xDpi;
saveinfo.yResolution = info.yDpi;
hgret = HGImgFmt_SaveImageToTiffWriter(tifwriter, hgimg, &saveinfo);
printf("\nHGImgFmt_SaveImageToTiffWriter %d", hgret);
}
else
{
printf("\nHGImgFmt_LoadImage error %d", hgret);
}
}
}
TIFFClose(tif_file);*/
return -1;
hgret = HGImgFmt_CloseTiffWriter(tifwriter);
printf("\nHGImgFmt_CloseTiffWriter %d", hgret);
return 1;
}