gdi+怎么显示32位ICO(带alpha通道)
很少弄图像处理方面的,最近因为需要,使用了一下GDI+来合成图像,但是遇到一个问题,就是XP系统使用的32ICO图标文件读取并显示的时候失真了,不知道什么原因
//显示ICO
var
_GPG: TGPGraphics;
_img: TGPImage;
begin
_GPG := TGPGraphics.Create(Canvas.Handle);
_img := TGPImage.Create('ICO(32位).ico');
_GPG.DrawImage(img,10,10,_img.GetWidth,_img.GetHeight); {参数2、3是坐标}
_GPG.Free;
_img.Free;
end;
----------
问题:显示出来的图像失真,全透明的地方没有问题,半图面的地方出现黑底
[解决办法]
你自己都没有使用透明的画刷来处理,当然透明不了了。
[解决办法]
还有,我用gdi+ 的 GdipCreateBitmapFromFile,是直接支持 ico的,这样能显示alpha通道!
但要提 取exe中的ico,就不能用GdipCreateBitmapFromFile