GDI+ 如何将图片绘制成圆形的图片

原创 2016年03月11日 11:48:25

大概意思就是不生成新的图片,而是将图片转换为圆形图片。

这里写图片描述

实现代码如下:

private Image CutEllipse(Image img, Rectangle rec, Size size)
{
    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(Point.Empty, size));
        }
    }
    return bitmap;
}

然后调用方法即可。

Image image = this.pictureBox1.Image;
Image newImage = CutEllipse(image, new Rectangle(0, 0, 150, 150), new Size(150, 150));
this.pictureBox2.Image = newImage;

那么用WPF如何实现?实现就更简单了,不需要写后台代码,直接利用XAML即可。

<Grid>
        <Ellipse Height="150" Width="150">
            <Ellipse.Fill>
                <ImageBrush ImageSource="Image/1_guwei4037.jpg" ></ImageBrush>
            </Ellipse.Fill>
        </Ellipse>
</Grid>

————————————————————————————————————

群里的@陈应钦对如上的方法提出一个问题,就是如上的方法图形的下边缘和右侧边缘是一条直线,并不是平滑的曲线。细心观察确实如此。

原因是我画到了picturebox控件中,本身picturebox控件border就占长度,正好又画满控件,所以右边和下边都是直线了(空间不够了)。

所以解决方案有两个:可以直接绘制到不占空间的区域(比如窗体中指定的Rectangle),或者将绘制图形的长和宽缩小一点。

版权声明:本文为博主原创文章,未经博主允许不得转载。

C# 将正方形头像转化成圆形头像(例如:qq头像)

转载于:http://blog.csdn.net/chinacsharper/article/details/50854852 看图: 点击转化后效果: 实现代码如下: ...
  • qq_23126581
  • qq_23126581
  • 2017年08月10日 11:03
  • 785

制作圆形图片,你会以下几种?

说起圆角图片,相信每个人心中都有自己的圆角图片制作方法。但是你是否想知道,除了你所会的那几张方法以外,还什么什么方法制作圆形图片呢?我们一一学习~关于通过使用XferMode方式创建圆形图片,hong...
  • huachao1001
  • huachao1001
  • 2016年06月04日 16:59
  • 9006

截取圆形图片做头像

import com.zte.positionenglish.util.BitmapUtil; import android.content.Context; import android.gra...
  • iamwutianbao
  • iamwutianbao
  • 2016年06月02日 09:09
  • 1272

WPF圆形头像显示

不知何时开始,大多数软件的头像采用了圆形头像,使用WPF进行圆形头像显示比较简单,并不是将图像裁剪成圆形头像后显示. 思路是裁剪出一个正方形的头像,然后在显示的时候,只显示正方形中的内切圆部分即可.W...
  • u013376417
  • u013376417
  • 2015年01月30日 14:06
  • 2604

WPF_圆角图片

  • lxl379386901
  • lxl379386901
  • 2015年08月12日 17:18
  • 1816

WPF圆形头像设置

  • 2015年02月02日 18:00
  • 167KB
  • 下载

WPF圆形头像设置

发现有些小程序设置头像的处理似乎有点问题,特别是不断的放大、缩小后,会出现图片只显示出一半。主要问题是这些程序对于图片的边界判断存在问题,从而导致一些问题。 本文主要实现WPF下用户头像的设置处理,实...
  • u013376417
  • u013376417
  • 2015年02月02日 17:40
  • 1400

深入WPF中的图像画刷(ImageBrush)之2——ImageBrush的铺设方式

--------------------------------------------------------------------------------引用或转载时请保留以下信息:大可山 [M...
  • johnsuna
  • johnsuna
  • 2007年09月05日 11:44
  • 17594

用GDI函数画圆。可确定圆心的

用Arc函数花一个圆。带八个参数圆的圆心在(260,400)半径为120,画一个0度到360度的整圆pDC->Arc(260-120,440-120,260+120,440+120,0,0,0,0);...
  • lll10000
  • lll10000
  • 2007年09月20日 13:06
  • 3460

对GDI+绘制圆弧接口的理解

对GDI+绘制圆弧接口的理解。
  • clever101
  • clever101
  • 2011年02月19日 14:51
  • 8303
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GDI+ 如何将图片绘制成圆形的图片
举报原因:
原因补充:

(最多只允许输入30个字)