解决导出对话框上面的进度条显示不正确的问题
This commit is contained in:
parent
80610b459f
commit
001eaf65cf
|
@ -31,8 +31,22 @@ Dialog_ExportImageFile::Dialog_ExportImageFile(const QString &destPath, const QS
|
|||
ui->setupUi(this);
|
||||
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
||||
|
||||
int totalCount = 0;
|
||||
for (int i = 0; i < m_srcFiles.size(); ++i)
|
||||
{
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
HGImgFmt_OpenImageReader(getStdString(m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (NULL != imgFmtReader)
|
||||
{
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
totalCount += count;
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
}
|
||||
}
|
||||
|
||||
ui->progressBar->setMinimum(0);
|
||||
ui->progressBar->setMaximum(srcFiles.size());
|
||||
ui->progressBar->setMaximum(totalCount);
|
||||
ui->progressBar->setValue(0);
|
||||
|
||||
connect(this, SIGNAL(updateProgress(int)), this, SLOT(on_updateProgress(int)), Qt::QueuedConnection);
|
||||
|
@ -57,290 +71,29 @@ void HGAPI Dialog_ExportImageFile::ThreadFunc(HGThread thread, HGPointer param)
|
|||
{
|
||||
(void)thread;
|
||||
Dialog_ExportImageFile *p = (Dialog_ExportImageFile *)param;
|
||||
HGResult ret = HGBASE_ERR_FAIL;
|
||||
|
||||
HGResult ret = HGBASE_ERR_FAIL;
|
||||
if (p->m_isSaveAsMulti)
|
||||
{
|
||||
QString fileName = p->m_destPath + p->m_destName + p->m_destExt;
|
||||
|
||||
if (p->m_isOcr)
|
||||
{
|
||||
#if 0
|
||||
|
||||
HGChar tmpFileName[256];
|
||||
HGBase_GetTmpFileName("tif", tmpFileName, 256);
|
||||
|
||||
HGImgFmtWriter writer = NULL;
|
||||
HGImgFmt_OpenImageWriter(tmpFileName, 0, &writer);
|
||||
|
||||
for (int i = 0; i < p->m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit p->updateProgress(i);
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(p->m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
ret = HGImgFmt_SaveImageToWriter(writer, img, NULL);
|
||||
HGBase_DestroyImage(img);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageWriter(writer);
|
||||
|
||||
bool result = createOcrPdf(tmpFileName, getStdString(fileName).c_str(), m_ocrLanguageType);
|
||||
QFile::remove(tmpFileName);
|
||||
if (!result)
|
||||
{
|
||||
ret = HGIMGPROC_ERR_OCR;
|
||||
}
|
||||
#else
|
||||
HGOCRMgr ocrMgr = nullptr;
|
||||
ret = HGImgProc_CreateOCRMgr(0, &ocrMgr);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
for (int i = 0; i < p->m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit p->updateProgress(i);
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(p->m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
ret = HGImgProc_AddToImageOCRList(ocrMgr, img);
|
||||
HGBase_DestroyImage(img);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ret == HGBASE_ERR_OK)
|
||||
{
|
||||
ret = HGImgProc_ImageListOCRToFile(ocrMgr, 0, getStdString(fileName).c_str(), NULL, NULL);
|
||||
}
|
||||
|
||||
HGImgProc_DestroyOCRMgr(ocrMgr);
|
||||
}
|
||||
#endif
|
||||
ret = p->processMultiFileOcr();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (p->m_destExt == ".gif")
|
||||
{
|
||||
ret = p->processGif(fileName);
|
||||
ret = p->processMultiFileGif();
|
||||
}
|
||||
else
|
||||
{
|
||||
HGImgFmtWriter imgFmtWriter = nullptr;
|
||||
ret = HGImgFmt_OpenImageWriter(getStdString(fileName).c_str(), 0, &imgFmtWriter);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
for (int i = 0; i < p->m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit p->updateProgress(i);
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(p->m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
HGImgFmtSaveInfo saveInfo;
|
||||
saveInfo.jpegQuality = (HGUInt)p->m_jpegQuality;
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_NONE;
|
||||
saveInfo.tiffJpegQuality = (HGUInt)p->m_tiffQuality;
|
||||
|
||||
HGImageInfo imgInfo;
|
||||
HGBase_GetImageInfo(img, &imgInfo);
|
||||
if (HGBASE_IMGTYPE_BINARY == imgInfo.type)
|
||||
{
|
||||
if (1 == p->m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == p->m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_CCITTFAX4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (1 == p->m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == p->m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_JPEG;
|
||||
}
|
||||
|
||||
ret = HGImgFmt_SaveImageToWriter(imgFmtWriter, img, &saveInfo);
|
||||
|
||||
HGBase_DestroyImage(img);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageWriter(imgFmtWriter);
|
||||
}
|
||||
ret = p->processMultiFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = 1;
|
||||
|
||||
for (int i = 0; i < p->m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit p->updateProgress(i);
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(p->m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (p->m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
char fileName[512];
|
||||
if(p->m_srcFiles.size() > 1 || count > 1)
|
||||
{
|
||||
sprintf(fileName, "%s%03d", getStdString(p->m_destName).c_str(), index);
|
||||
}else
|
||||
sprintf(fileName, "%s", getStdString(p->m_destName).c_str());
|
||||
|
||||
++index;
|
||||
|
||||
QString saveFileName = p->m_destPath + QString(StdStringToUtf8(fileName).c_str()) + p->m_destExt;
|
||||
|
||||
HGImgFmtSaveInfo saveInfo;
|
||||
saveInfo.jpegQuality = (HGUInt)p->m_jpegQuality;
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_NONE;
|
||||
saveInfo.tiffJpegQuality = (HGUInt)p->m_tiffQuality;
|
||||
|
||||
HGImageInfo imgInfo;
|
||||
HGBase_GetImageInfo(img, &imgInfo);
|
||||
if (HGBASE_IMGTYPE_BINARY == imgInfo.type)
|
||||
{
|
||||
if (1 == p->m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == p->m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_CCITTFAX4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (1 == p->m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == p->m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_JPEG;
|
||||
}
|
||||
|
||||
ret = MainWindow::saveImage(img, &saveInfo, p->m_isOcr, getStdString(saveFileName).c_str());
|
||||
HGBase_DestroyImage(img);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
break;
|
||||
}
|
||||
ret = p->processSingleFile();
|
||||
}
|
||||
|
||||
emit p->finish((int)ret);
|
||||
|
@ -366,7 +119,77 @@ void Dialog_ExportImageFile::on_pushButton_clicked()
|
|||
m_thread = nullptr;
|
||||
}
|
||||
|
||||
HGResult Dialog_ExportImageFile::processGif(const QString &fileName)
|
||||
HGResult Dialog_ExportImageFile::processMultiFileOcr()
|
||||
{
|
||||
int handleCount = 0;
|
||||
QString fileName = m_destPath + m_destName + m_destExt;
|
||||
|
||||
HGOCRMgr ocrMgr = nullptr;
|
||||
HGResult ret = HGImgProc_CreateOCRMgr(HGIMGPROC_OCRALGO_HANVON, &ocrMgr);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit updateProgress(handleCount);
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
ret = HGImgProc_AddToImageOCRList(ocrMgr, img);
|
||||
HGBase_DestroyImage(img);
|
||||
++handleCount;
|
||||
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
{
|
||||
ret = HGImgProc_ImageListOCRToFile(ocrMgr, 0, getStdString(fileName).c_str(), NULL, NULL);
|
||||
}
|
||||
|
||||
HGImgProc_DestroyOCRMgr(ocrMgr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HGResult Dialog_ExportImageFile::processMultiFileGif()
|
||||
{
|
||||
HGUInt maxWidth = 0;
|
||||
HGUInt maxHeight = 0;
|
||||
|
@ -392,12 +215,16 @@ HGResult Dialog_ExportImageFile::processGif(const QString &fileName)
|
|||
}
|
||||
}
|
||||
|
||||
HGGifSaveInfo gifSaveInfo = {maxWidth, maxHeight};
|
||||
int handleCount = 0;
|
||||
QString fileName = m_destPath + m_destName + m_destExt;
|
||||
|
||||
HGGifSaveInfo gifSaveInfo = {maxWidth, maxHeight};
|
||||
HGGifWriter gifWriter = NULL;
|
||||
HGResult ret = HGImgFmt_OpenGifWriter(getStdString(fileName).c_str(), &gifSaveInfo, &gifWriter);
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_srcFiles.size(); ++i)
|
||||
{
|
||||
|
@ -406,12 +233,13 @@ HGResult Dialog_ExportImageFile::processGif(const QString &fileName)
|
|||
break;
|
||||
}
|
||||
|
||||
emit updateProgress(i);
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
|
@ -421,32 +249,214 @@ HGResult Dialog_ExportImageFile::processGif(const QString &fileName)
|
|||
break;
|
||||
}
|
||||
|
||||
emit updateProgress(handleCount);
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK == ret)
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
ret = HGImgFmt_SaveImageToGifWriter(gifWriter, 200, HG_MAKECOLOR(255, 255, 255, 255), img);
|
||||
|
||||
HGBase_DestroyImage(img);
|
||||
break;
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
ret = HGImgFmt_SaveImageToGifWriter(gifWriter, 200, HG_MAKECOLOR(255, 255, 255, 255), img);
|
||||
HGBase_DestroyImage(img);
|
||||
++handleCount;
|
||||
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
}
|
||||
|
||||
if (ret != HGBASE_ERR_OK)
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseGifWriter(gifWriter);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HGResult Dialog_ExportImageFile::processMultiFile()
|
||||
{
|
||||
int handleCount = 0;
|
||||
QString fileName = m_destPath + m_destName + m_destExt;
|
||||
|
||||
HGImgFmtWriter imgFmtWriter = nullptr;
|
||||
HGResult ret = HGImgFmt_OpenImageWriter(getStdString(fileName).c_str(), 0, &imgFmtWriter);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit updateProgress(handleCount);
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmtSaveInfo saveInfo;
|
||||
saveInfo.jpegQuality = (HGUInt)m_jpegQuality;
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_NONE;
|
||||
saveInfo.tiffJpegQuality = (HGUInt)m_tiffQuality;
|
||||
|
||||
HGImageInfo imgInfo;
|
||||
HGBase_GetImageInfo(img, &imgInfo);
|
||||
if (HGBASE_IMGTYPE_BINARY == imgInfo.type)
|
||||
{
|
||||
if (1 == m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_CCITTFAX4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (1 == m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_JPEG;
|
||||
}
|
||||
|
||||
ret = HGImgFmt_SaveImageToWriter(imgFmtWriter, img, &saveInfo);
|
||||
HGBase_DestroyImage(img);
|
||||
++handleCount;
|
||||
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageWriter(imgFmtWriter);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HGResult Dialog_ExportImageFile::processSingleFile()
|
||||
{
|
||||
int handleCount = 0;
|
||||
HGResult ret = HGBASE_ERR_OK;
|
||||
|
||||
for (int i = 0; i < m_srcFiles.size(); ++i)
|
||||
{
|
||||
if (m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGImgFmtReader imgFmtReader = nullptr;
|
||||
ret = HGImgFmt_OpenImageReader(getStdString(m_srcFiles[i]).c_str(), 0, &imgFmtReader);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
HGUInt count = 0;
|
||||
HGImgFmt_GetImagePageCount(imgFmtReader, &count);
|
||||
for (HGUInt j = 0; j < count; ++j)
|
||||
{
|
||||
if (m_stopThread)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
emit updateProgress(handleCount);
|
||||
|
||||
HGImage img = nullptr;
|
||||
ret = HGImgFmt_LoadImageFromReader(imgFmtReader, j, nullptr, 0, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
QString fileName;
|
||||
if(m_srcFiles.size() > 1 || count > 1)
|
||||
{
|
||||
char str[256];
|
||||
sprintf(str, "%s%03d", getStdString(m_destName).c_str(), handleCount + 1);
|
||||
fileName = m_destPath + QString(StdStringToUtf8(str).c_str()) + m_destExt;
|
||||
}
|
||||
else
|
||||
{
|
||||
fileName = m_destPath + m_destName + m_destExt;
|
||||
}
|
||||
|
||||
HGImgFmtSaveInfo saveInfo;
|
||||
saveInfo.jpegQuality = (HGUInt)m_jpegQuality;
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_NONE;
|
||||
saveInfo.tiffJpegQuality = (HGUInt)m_tiffQuality;
|
||||
|
||||
HGImageInfo imgInfo;
|
||||
HGBase_GetImageInfo(img, &imgInfo);
|
||||
if (HGBASE_IMGTYPE_BINARY == imgInfo.type)
|
||||
{
|
||||
if (1 == m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == m_tiffCompressionBW)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_CCITTFAX4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (1 == m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_LZW;
|
||||
else if (2 == m_tiffCompression)
|
||||
saveInfo.tiffCompression = HGIMGFMT_TIFFCOMP_JPEG;
|
||||
}
|
||||
|
||||
ret = MainWindow::saveImage(img, &saveInfo, m_isOcr, getStdString(fileName).c_str());
|
||||
HGBase_DestroyImage(img);
|
||||
++handleCount;
|
||||
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HGImgFmt_CloseImageReader(imgFmtReader);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Dialog_ExportImageFile::closeEvent(QCloseEvent *e)
|
||||
{
|
||||
(void)e;
|
||||
|
|
|
@ -31,7 +31,10 @@ private slots:
|
|||
void on_pushButton_clicked();
|
||||
|
||||
private:
|
||||
HGResult processGif(const QString &fileName);
|
||||
HGResult processMultiFileOcr();
|
||||
HGResult processMultiFileGif();
|
||||
HGResult processMultiFile();
|
||||
HGResult processSingleFile();
|
||||
|
||||
protected:
|
||||
virtual void closeEvent(QCloseEvent *e);
|
||||
|
@ -50,7 +53,7 @@ private:
|
|||
bool m_isOcr;
|
||||
QStringList m_srcFiles;
|
||||
|
||||
bool m_stopThread;
|
||||
volatile bool m_stopThread;
|
||||
HGThread m_thread;
|
||||
};
|
||||
|
||||
|
|
|
@ -178,20 +178,23 @@
|
|||
}
|
||||
else if ("scan_image" == message['func'])
|
||||
{
|
||||
var info = document.getElementById('info');
|
||||
info.value = message['image_path'];
|
||||
|
||||
//var myCanvas = document.getElementById("myCanvas");
|
||||
//myCanvas.src = message['image_base64'];
|
||||
|
||||
var req1 = {'func':'insert_local_image', 'iden':'111', 'image_path':''};
|
||||
req1.image_path = message['image_path'];
|
||||
socket.send(JSON.stringify(req1));
|
||||
//var req1 = {'func':'insert_local_image', 'iden':'111', 'image_path':''};
|
||||
//req1.image_path = message['image_path'];
|
||||
//socket.send(JSON.stringify(req1));
|
||||
|
||||
//var req2 = {'func':'upload_local_file', 'iden':'111', 'file_path':'', 'upload_mode':'http', 'http_host':'192.168.100.70', 'http_port':8001, 'http_path':'/upload.php'};
|
||||
//req2.file_path = message['image_path'];
|
||||
//socket.send(JSON.stringify(req2));
|
||||
|
||||
var req3 = {'func':'delete_local_file', 'file_path':''};
|
||||
req3.file_path = message['image_path'];
|
||||
socket.send(JSON.stringify(req3));
|
||||
//var req3 = {'func':'delete_local_file', 'file_path':''};
|
||||
//req3.file_path = message['image_path'];
|
||||
//socket.send(JSON.stringify(req3));
|
||||
}
|
||||
else if ("stop_scan" == message['func'])
|
||||
{
|
||||
|
@ -397,7 +400,7 @@
|
|||
'remote_file_path':'/savedir/123.jpg',
|
||||
'upload_mode':'http',
|
||||
'http_host':'192.168.1.70',
|
||||
'http_port':8001,
|
||||
'http_port':8080,
|
||||
'http_path':'/upload.php'
|
||||
}));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue