Рисование прозрачных / альфа-изображений с помощью CxImage - PullRequest
0 голосов
/ 04 августа 2009

Я пытаюсь нарисовать прозрачное (альфа) PNG-изображение, используя CxImage, но, похоже, я пропускаю какой-то очевидный шаг ... Код на данный момент:

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);

Ты видишь, чего мне не хватает?

Заранее спасибо!

1 Ответ

0 голосов
/ 05 августа 2009

Похоже, что функция Thumbnail () вызвала эти проблемы вместе с целевым форматом JPEG. Изменено на Resample2 () и PNG, и все в порядке.

...