首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

gdi+如何显示32位ICO(带alpha通道)

2012-04-10 
gdi+怎么显示32位ICO(带alpha通道)很少弄图像处理方面的,最近因为需要,使用了一下GDI+来合成图像,但是遇到

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

热点排行