GDI++ 实现半透明效果,需要设置矩陈 为了赚点分,我把完整GDI++实现代码全给你。其实实现半透明,用GDI也很方便的。一方面是DELPHI在gdi++方面的资料确实少。procedure TForm1.Button1Click(Sender: TObject);const ColorMatrix: TColorMatrix = ((1.0, 0.0, 0.0, 0.0, 0.0), (0.0, 1.0, 0.0, 0.0, 0.0), (0.0, 0.0, 1.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.5, 0.0), //0.5 为半透明度 1 为不透明 (0.0, 0.0, 0.0, 0.0, 1.0));var Image, Mask: TGpImage; Attr: TGpImageAttributes; g: TGpGraphics; W, H: Integer;begin Image := TGpImage.Create('..mediamsn.jpg'); Mask := TGpImage.Create({'..mediamsn1.gif'}'..mediaMask1.bmp'); Attr := TGpImageAttributes.Create; g := TGpGraphics.Create(Handle, False); try W := Image.Width; H := Image.Height; g.DrawImage(Image, 10, 10, W, H); // 显示图片原图 g.TranslateTransform(W + 4, 0); g.DrawImage(mask, 10, 10, W, H); // 显示掩码原图 Attr.SetColorMatrix(ColorMatrix); g.TranslateTransform(W + 4, 0); g.DrawImage(Image, 10, 10, W, H); // 混合显示 g.DrawImage(mask, GpRect(10, 10, W, H), 0, 0, W, H, utPixel, Attr); finally g.Free; Attr.Free; Mask.Free; Image.Free; end;end;