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

图像处理小白问一个有关问题,关于图片透明

2012-03-07 
图像处理小白问一个问题,关于图片透明我在TImage控件中用圆角矩形区域画了一张图片,但是图片的圆角部分还

图像处理小白问一个问题,关于图片透明
我在TImage控件中用圆角矩形区域画了一张图片,但是图片的圆角部分还是白色的,如何能把这部分变透明呢,TIMAGE的透明属性我是设了的?紧急求助!
代码如下:
var
  bmp:TBitmap;
  Rhandle:HRGN;
begin
  bmp:=TBitmap.Create;
  bmp.LoadFromFile(C_BMPFILE);

  Rhandle:=CreateRoundRectRgn(0,0,img1.Width,img1.Height,20,20);
  SelectclipRgn(img1.Canvas.Handle,rHandle);
  img1.Canvas.Draw(0,0,bmp);
  deleteObject(Rhandle);
end;
  效果如图:
 
希望图没挂,~

[解决办法]

Delphi(Pascal) code
Img1.Transparent := True;
[解决办法]
var
bmp:TBitmap;
bmpBuffer:TBitmap;
Rhandle:HRGN;
begin
bmp:=TBitmap.Create;
bmpBuffer:=TBitmap.Create;
bmp.LoadFromFile('areo.bmp');
Image1.Transparent:=True;
Rhandle:=CreateRoundRectRgn(0,0,Image1.Width,Image1.Height,20,20);
bmpBuffer.SetSize(Image1.Width,Image1.Height);
bmpBuffer.Canvas.Brush.Color:=clBlack;
bmpBuffer.Canvas.Brush.Style:=bsSolid;
bmpBuffer.Canvas.FillRect(Rect(0,0,Image1.Width,Image1.Height));
try
SelectClipRgn(bmpBuffer.Canvas.Handle,rHandle);
bmpBuffer.Canvas.Draw(0,0,bmp);
bmpBuffer.Canvas.Brush.Style:=bsClear;
Image1.Picture.Assign(bmpBuffer);
finally
DeleteObject(Rhandle);
end;
bmpBuffer.Free;
bmp.Free;


唉,分太少了...特意帮你看了一下..

热点排行