winform实现pictureBox显示成圆形形状,并实现pictureBox透明
生活随笔
收集整理的這篇文章主要介紹了
winform实现pictureBox显示成圆形形状,并实现pictureBox透明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 背景
- 一、將pictureBox變成圓形圖片?
- 二、實現pictureBox透明
- 三、圖片裁剪成圓形
背景
使用winform窗體做一個人臉識別的效果,需要使用三個pictureBox來存放gif圖,第一個最底下有個圓圈再轉,中間顯示人臉的圖片,第三個顯示個來回彈的橫線;
提示:以下是本篇文章正文內容,下面案例可供參考
一、將pictureBox變成圓形圖片?
pictureBox默認是長方形的,要將其變成圓形需要重寫這個控件,只需要在formload事件加載這個方法即可
private void Form1_Load(object sender, EventArgs e){GraphicsPath gp = new GraphicsPath();gp.AddEllipse(picShow.ClientRectangle);//picShow為控件名字Region region = new Region(gp);picShow.Region = region;gp.Dispose();region.Dispose();//linePic.Parent = this.picShow;}二、實現pictureBox透明
picturebox直接疊加放置,并設置backcolor為透明并不能實現透明;
需要設置需要透明的控件的parent為上一個picturebox;但有個問題就是坐標不是按照直接放置的做來生成了,需要重新設置下location。至于為什么就不知道了,簡單記錄下,
三、圖片裁剪成圓形
如果不需要設置picturebox為圓形看,可以直接裁剪圖片為圓形,代碼如下:
public Bitmap GetRoundPic(System.Drawing.Image img){int width = img.width;int height = img.height;var length = width;if (width > height){length = height;}Rectangle rec = new Rectangle(0, 0, length, length);System.Drawing.Size size = new System.Drawing.Size(length, length);Bitmap bitmap = new Bitmap(size.Width, size.Height);using (Graphics g = Graphics.FromImage(bitmap)){using (TextureBrush br = new TextureBrush(img, System.Drawing.Drawing2D.WrapMode.Clamp, rec)){br.ScaleTransform(bitmap.Width / (float)rec.Width, bitmap.Height / (float)rec.Height);g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;g.FillEllipse(br, new Rectangle(System.Drawing.Point.Empty, size));}}return bitmap;}總結
以上是生活随笔為你收集整理的winform实现pictureBox显示成圆形形状,并实现pictureBox透明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天若OCR文字识别V4.48
- 下一篇: 性价比高的微信社群助手有哪些?能介绍一下