From 82b717b16a46495bf56ec57f41de53aa51f1565a Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Wed, 10 Jan 2024 18:18:49 +0800 Subject: [PATCH] =?UTF-8?q?gdi=E5=8A=A0=E8=BD=BD=E7=81=B0=E5=BA=A6?= =?UTF-8?q?=E5=9B=BE=E5=83=8F=E5=85=88=E8=BD=AC=E6=88=90=E5=BD=A9=E8=89=B2?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E9=99=A4=E5=99=AA=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/base/HGImage.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/base/HGImage.cpp b/modules/base/HGImage.cpp index 3295d5e1..c4f6e59a 100644 --- a/modules/base/HGImage.cpp +++ b/modules/base/HGImage.cpp @@ -1,4 +1,4 @@ -#include "HGImage.h" +#include "HGImage.h" #include "HGInc.h" #if defined(HG_CMP_MSC) #include @@ -525,12 +525,11 @@ static HGResult LoadGdiImage(Gdiplus::Image* pImage, const HGImageRoi* roi, HGUI HBITMAP hBmp = NULL; HGBase_GetHBITMAPOfImage(*image, &hBmp); - if (NULL != hBmp) + if (NULL != hBmp && (HGBASE_IMGTYPE_BGR == type || HGBASE_IMGTYPE_BGRA == type)) { HDC hMem = CreateCompatibleDC(NULL); HBITMAP hOldBmp = (HBITMAP)SelectObject(hMem, hBmp); Gdiplus::Graphics graphics(hMem); - graphics.SetInterpolationMode(Gdiplus::InterpolationModeHighQuality); graphics.DrawImage(pImage, (INT)roi2.left, (INT)roi2.top, (INT)(roi2.right - roi2.left), (INT)(roi2.bottom - roi2.top)); SelectObject(hMem, hOldBmp); @@ -544,6 +543,10 @@ static HGResult LoadGdiImage(Gdiplus::Image* pImage, const HGImageRoi* roi, HGUI type2 = HGBASE_IMGTYPE_BGR; else if (HGBASE_IMGTYPE_RGBA == type) type2 = HGBASE_IMGTYPE_BGRA; + else if (HGBASE_IMGTYPE_GRAY == type) + type2 = HGBASE_IMGTYPE_BGR; + else if (HGBASE_IMGTYPE_BINARY == type) + type2 = HGBASE_IMGTYPE_BGR; HGImage image2 = NULL; ret = LoadGdiImage(pImage, roi, type2, origin, &image2);