From 9fc3f86d452930be837a5634d0a1bd0e03002927 Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Sat, 21 May 2022 15:02:55 +0800 Subject: [PATCH] =?UTF-8?q?HGView=E6=8E=A7=E4=BB=B6=E4=B8=8A=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E5=9B=BE=E5=83=8F=E5=A6=82=E6=9E=9C=E6=98=AF=E7=81=B0?= =?UTF-8?q?=E5=BA=A6=E5=88=99=E6=8C=89GRAY=E6=96=B9=E5=BC=8F=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=EF=BC=8C=E8=80=8C=E4=B8=8D=E6=80=BB=E6=98=AF=E6=8C=89?= =?UTF-8?q?RGB=E6=96=B9=E5=BC=8F=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scanner/HGImgView.cpp | 2 +- app/scanner/mainwindow.cpp | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/scanner/HGImgView.cpp b/app/scanner/HGImgView.cpp index 960438f8..c34bf998 100644 --- a/app/scanner/HGImgView.cpp +++ b/app/scanner/HGImgView.cpp @@ -832,7 +832,7 @@ HGResult HGImgView::enableScroll(bool enable) HGResult HGImgView::addImage(HGImage image) { HGImage img = nullptr; - HGResult ret = HGBase_CloneImage(image, HGBASE_IMGTYPE_RGB, HGBASE_IMGORIGIN_TOP, &img); + HGResult ret = HGBase_CloneImage(image, 0, HGBASE_IMGORIGIN_TOP, &img); if (ret != HGBASE_ERR_OK) { return ret; diff --git a/app/scanner/mainwindow.cpp b/app/scanner/mainwindow.cpp index c3596593..c1e3d1ce 100644 --- a/app/scanner/mainwindow.cpp +++ b/app/scanner/mainwindow.cpp @@ -1112,7 +1112,17 @@ HGImage MainWindow::createImage() HGImgFmt_OpenImageReader(getStdString(m_currFilePath).c_str(), 0, &imgFmtReader); if (nullptr != imgFmtReader) { - HGImgFmt_LoadImageFromReader(imgFmtReader, (HGUInt)m_multiIndex, nullptr, HGBASE_IMGTYPE_RGB, HGBASE_IMGORIGIN_TOP, &img); + HGImgFmtLoadInfo info; + HGImgFmt_LoadImageFromReader(imgFmtReader, (HGUInt)m_multiIndex, &info, 0, 0, nullptr); + if (info.bpp == 8 || info.bpp == 1) + { + HGImgFmt_LoadImageFromReader(imgFmtReader, (HGUInt)m_multiIndex, nullptr, HGBASE_IMGTYPE_GRAY, HGBASE_IMGORIGIN_TOP, &img); + } + else + { + HGImgFmt_LoadImageFromReader(imgFmtReader, (HGUInt)m_multiIndex, nullptr, HGBASE_IMGTYPE_RGB, HGBASE_IMGORIGIN_TOP, &img); + } + HGImgFmt_CloseImageReader(imgFmtReader); } } @@ -2165,7 +2175,7 @@ void MainWindow::on_act_autoCrop_triggered() HGImage destImage = nullptr; HGImgProc_ImageAutoCrop(img, (HGBool)isCrop, (HGBool)isDeskew, (HGBool)isFillBlank, &autoCropParam, imgInfo.width, imgInfo.height, - HGBASE_IMGTYPE_RGB, HGBASE_IMGORIGIN_TOP, &destImage); + imgInfo.type, HGBASE_IMGORIGIN_TOP, &destImage); if (nullptr != destImage) { m_view->addImage(destImage);