delphi 做一个圆形头像

方法一:用API,此方法做出来的效果稍差,边缘会带有锯齿,强迫证患者谨用.

procedure TForm1.FormCreate(Sender: TObject);
var
  fhr: Thandle;
begin
  fhr := CreateRoundRectRgn(0, 0, 195, 195, 195, 195); //195,头像尺寸
  SetWindowRgn(Panel1.Handle, fhr, true);
end;

设计图:

 

效果图:

 

 

 

方法二.自己用PS做一个PNG图片.

要求:

  1.尺寸与头像容器一致

  2.底色与父级容器底色一致

  3.中间画一个圆,大小与你要求的头像的尺寸一致.

  4.按delete去底色,使圆的部分透明.最后保存

优点:

  此方法不需要代码.且边缘比较润滑.

缺点:

  窗体底色容易受主题影响,与头像容器不一致时,很尴尬,

  解决方案:

  感谢群里大佬的指点:

  选中想要免受主题影响的控件(窗体也算是一个控件),然后把 StyleElements-seClient设置为false,按业务需求,你也可以设置另外的seFont与seBorder

  

 

 

结构图:

 

 

效果图如下 ,需要你自己再美化一下,这里就不讲了:

  

 

 

 感谢群里大佬的指点:

  

 方法三,强烈推荐:

使用scGPImage控件,随便加载一个图片,并把ClipFrame属性设置为scgpcfEllipse即可出效果。

 

 

 

 

 

 感谢群友提供的方案:

 

posted @ 2022-10-06 09:11  一曲轻扬  阅读(455)  评论(0)    收藏  举报