【问题标题】:Drawing transparent/alpha images using CxImage使用 CxImage 绘制透明/alpha 图像
【发布时间】:2010-11-16 16:32:02
【问题描述】:

我正在尝试使用 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);

你能看到我错过了什么吗?

提前致谢!

【问题讨论】:

    标签: winapi mfc gdi


    【解决方案1】:

    似乎是 Thumbnail() 函数导致了这些问题以及目标格式是 JPEG。改成 Resample2() 和 PNG 就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      相关资源
      最近更新 更多