vb.net 实现图片圆形渐变模糊


实现代码:


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Paint  ' 创造容器的paint事件
 Dim btp As New Bitmap(300, 300)                         ' 定义位图变量1
  Dim btp2 As New Bitmap(300, 300)                 ' 定义位图变量2
 Dim a As Graphics = Graphics.FromImage(btp)   '创建绘图对象
a.DrawImage(PictureBox1.Image, 0, 0, 300, 300)  '将图片框1的图像以300x300象素写入位图变量1中,这样做是将背景图片缩放以300x300
    Dim b As Graphics = Graphics.FromImage(btp2)  '  创建绘图对象2
        Dim r, x, y, alph1 As Integer
Dim xtoy As Rectangle                    '定义矩形
        Dim c2, c3 As Color       '定义颜色
Dim br1 As SolidBrush         ' 定义填充颜色
        While y < 300               'y是位图中象素点y坐标
            x = 0
While x < 300                        'x是位图中象素点的x坐标
         xtoy = New Rectangle(x, y, 1, 1)         ' 定义位置x,y尺寸为宽度1x1象素的矩形用来代替点(vb.net没找到画点函数:)
    r = Math.Sqrt((x - 150) ^ 2 + (y - 150) ^ 2)   '计算坐标x,y坐标处相对图片中点的距离
                alph1 = 255 - (r - 80) * 255 / 70  ' 以到中心点的距离计算出透明度(0为最透明,255不透明)
                If alph1 <= 0 Then alph1 = 0
If alph1 >= 255 Then alph1 = 255
If r <= 50 Then alph1 = 255                 '图片中心半径50象素内不透明
     c2 = btp.GetPixel(x, y)                   '获取位图指定点的颜色值(RGB)
                c3 = System.Drawing.Color.FromArgb(alph1, c2) ‘生成(ARGB)色
                br1 = New SolidBrush(c3)‘生成画笔色
b.FillRectangle(br1, xtoy)    '写入新颜色点

x = x + 1      .'x坐标加1

End While
y = y + 1  'y坐标加1
End While
PictureBox2.Image = btp2   '将重新生成后的图片写入图片框中
        a.Dispose()
b.Dispose()
End Sub 

应用实例图:



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值