我正在尝试使用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);
你能看到我错过的东西吗?
提前致谢!
答案 0 :(得分:0)
似乎Thumbnail()函数导致这些问题以及目标格式为JPEG。改为Resample2()和PNG,没关系。