15,979
社区成员
发帖
与我相关
我的任务
分享
Bitmap* pThumbnail = (Bitmap*)bmp.GetThumbnailImage(sourceWidth, sourceHeight, NULL, NULL); //设定缩略图的大小
HBITMAP hBmp;
pThumbnail->GetHBITMAP(Color(255,255,255),&hBmp);
CBitmap *pImage = CBitmap::FromHandle(hBmp); //转换成CBitmap格式位图
TCHAR drive[MAX_PATH] = _T("");
TCHAR dir[MAX_PATH] = _T("");
TCHAR fname[MAX_PATH] = _T("");
TCHAR ext[MAX_PATH] = _T("");
_wsplitpath(path ,drive, dir,fname, ext);
CString itemName(fname);
itemName.Append(ext);
int index = m_imageList.Add(pImage,RGB(255,255, 255));
m_listCtrl.InsertItem(index, itemName, index);
Cimage mimage;
HRESULT hr = mimage.Load(szImageName);
for(int i = 0; i < mimage.GetWidth(); i++)
{
for(int j = 0; j < mimage.GetHeight(); j++)
{
unsigned char* pucColor = reinterpret_cast<unsigned char *>(mimage.GetPixelAddress(i , j));
pucColor[0] = pucColor[0] * pucColor[3] / 255;
pucColor[1] = pucColor[1] * pucColor[3] / 255;
pucColor[2] = pucColor[2] * pucColor[3] / 255;
}
}
[/quote]
搞清楚好吧,CImage 是没有,但 GDI+ 本来就支持透明的。
Cimage mimage;
HRESULT hr = mimage.Load(szImageName);
for(int i = 0; i < mimage.GetWidth(); i++)
{
for(int j = 0; j < mimage.GetHeight(); j++)
{
unsigned char* pucColor = reinterpret_cast<unsigned char *>(mimage.GetPixelAddress(i , j));
pucColor[0] = pucColor[0] * pucColor[3] / 255;
pucColor[1] = pucColor[1] * pucColor[3] / 255;
pucColor[2] = pucColor[2] * pucColor[3] / 255;
}
}