Winapi 使用CxImage绘制透明/alpha图像

Winapi 使用CxImage绘制透明/alpha图像,winapi,mfc,gdi,Winapi,Mfc,Gdi,我正在尝试使用CxImage绘制一个透明(alpha)PNG图像,但似乎我遗漏了一些明显的步骤。。。到目前为止,守则是: CxImage image(m_pImage, m_lSize, CXIMAGE_FORMAT_UNKNOWN); CRect rcOut = rc; rcOut.left = (rc.Width()/2) - (image.GetWidth()/2); rcOut.right = rcOut.left + image.GetWidth(); rcOut.top = (rc

我正在尝试使用CxImage绘制一个透明(alpha)PNG图像,但似乎我遗漏了一些明显的步骤。。。到目前为止,守则是:

CxImage image(m_pImage, m_lSize, CXIMAGE_FORMAT_UNKNOWN);

CRect rcOut = rc;
rcOut.left = (rc.Width()/2) - (image.GetWidth()/2);
rcOut.right = rcOut.left + image.GetWidth();
rcOut.top = (rc.Height()/2) - (image.GetHeight()/2);
rcOut.bottom = rcOut.top + image.GetHeight();

image.Draw(dc.GetSafeHdc(),rcOut);
其中,m_pImage通过以下方式加载到其他位置:

CxImage image(strPath,CXIMAGE_FORMAT_UNKNOWN);
long lSize = 0;
BYTE * pBuf = NULL;

RGBQUAD rgbq;
rgbq.rgbRed = 255;
rgbq.rgbGreen = 255;
rgbq.rgbBlue = 255;
rgbq.rgbReserved = 0;

image.Thumbnail(paramImageSize, paramImageSize, rgbq);
image.SetJpegQuality(100);
image.Encode(pBuf, lSize, CXIMAGE_FORMAT_JPG);
你能看到我遗漏了什么吗


提前谢谢

似乎是Thumbnail()函数导致了这些问题,而目标格式是JPEG。更改为重采样2()和PNG,一切正常