用SHGetFileInfo获得ICON后,然后使用GDI+保存成PNG,大部分透明没有问题,但是图标周围还是有一些黑边,不知道是怎么回事:
代码如下:
SHFILEINFO rInfo;
HIMAGELIST hImglist;
hImglist = (HIMAGELIST) SHGetFileInfo (cTarget.GetString(),0, &rInfo, sizeof(SHFILEINFO), 
SHGFI_ICON | SHGFI_SHELLICONSIZE|SHGFI_DISPLAYNAME);
Gdiplus::Bitmap* bitmap=NULL;
bitmap=Gdiplus::Bitmap::FromHICON(rInfo.hIcon);
savePng(bitmap,"Icon.png");