资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb.net图片模糊的简单介绍

vb.net保存图片时如何调整其分辨率

保存前加一句 myImage2.SetResolution(300, 300) 你设置的bMape不是保存的主画布 所以无效,设置分辨率就是 SetResolution(X,Y)

专注于为中小企业提供成都网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业邵原免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

VB.NET如何根据名字模糊查询图片名字

思路如下:

得到图片文件夹路径里所有图片的文件名。

对这些文件名进行判断,是否包含你所谓的模糊的文字。

当判断发现包含时,就复制对应的图片到你想到的对应的目录。

vb.net怎么使图像灰度化再输出

在web上可以使用HTML5的特效实现。

在windows forms里面可以直接修改设置图片的属性。

Try

' 图片位置初始化一个image1

Dim image1 As New Bitmap(

"C:\Documents and Settings\All Users\Documents\My Music\music.bmp",

True)

Dim x, y As Integer

' Loop through the images pixels to reset color.

For x = 0 To image1.Width - 1

For y = 0 To image1.Height - 1

Dim pixelColor As Color = image1.GetPixel(x, y)

Dim newColor As Color =

Color.FromArgb(pixelColor.R, 0, 0)

image1.SetPixel(x, y, newColor)

Next

Next

' Set the PictureBox to display the image.

PictureBox1.Image = image1

' Display the pixel format in Label1.

Label1.Text = "Pixel format: " + image1.PixelFormat.ToString()

Catch ex As ArgumentException

MessageBox.Show("There was an error." _

"Check the path to the image file.")

End Try

VB.net如何对picturebox1的图片进行高斯模糊?

Imports System

Imports System.Drawing

Imports System.Drawing.Imaging

Imports System.Runtime.InteropServices

''' summary

''' Summary description for TextShadow

''' /summary

''' remarks/remarks

Public Class gaoshiBLUR

Public newbmp As Bitmap

StructLayout(LayoutKind.Explicit) Structure rgbA

FieldOffset(0) Public R As Byte

FieldOffset(1) Public G As Byte

FieldOffset(2) Public B As Byte

FieldOffset(3) Public A As Byte

FieldOffset(0) Public col As Integer

End Structure

Private m_radius As Integer = 5

''' summary

''' 高斯卷积矩阵

''' /summary

''' remarks/remarks

Private gaussMatrix As Integer()

''' summary

''' 卷积核

''' /summary

''' remarks/remarks

Private nuclear As Integer = 0

''' summary

''' 模糊半径

''' /summary

''' value/value

''' returns/returns

''' remarks/remarks

Public Property Radius() As Integer

Get

Return m_radius

End Get

Set(ByVal Value As Integer)

If (m_radius  Value) Then

m_radius = Value

MakeGaussMatrix()

End If

End Set

End Property

''' summary

''' 高斯模糊

''' /summary

''' param name="bmp"要处理的图像/param

''' remarks/remarks

Public Sub MaskShadow(ByVal bmp As Bitmap)

If nuclear = 0 Then MakeGaussMatrix()

Dim rt As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height)

' 克隆临时位图,作为卷积源

Dim tmp As Bitmap = bmp.Clone()

Dim dest As BitmapData = bmp.LockBits(rt, ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb)

Dim source As BitmapData = tmp.LockBits(rt, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb)

Debug.Print(Radius)

Debug.Print(dest.Width.ToString)

Debug.Print(nuclear)

Dim Number As Integer = (bmp.Height * dest.Stride - 1) / 4   ' 图像数据元素的个数,注意.net中数组下标是从0开始的

Dim bmpdata(Number) As Integer

Dim tmpdata(Number) As Integer

Dim TMPrgb(Number) As rgbA '临时参考颜色

Dim BMPrgb(Number) As rgbA '计算结果后的颜色

'ReDim bmpdata(Number)

'ReDim TMPrgb(Number)

Marshal.Copy(source.Scan0, tmpdata, 0, Number)

Dim i As Long

Dim j As Long

j = Number

Dim w, h As Long

Dim yi, xi As Long

Dim iw, ih, iiw, iih, iii As Long

Dim k As Long

Dim nn As Integer = (Radius * 2 + 1) ^ 2

Dim n As Integer = Radius * 2 + 1

w = bmp.Width

h = bmp.Height

' System.Array.Copy(TMPrgb, tmpdata, j)

For i = 0 To j

TMPrgb(i).col = tmpdata(i)

Next i

i = 0

For i = 0 To j

ih = Int(i / w)

iw = i - ih * w

Dim r As Double = 0

Dim g As Double = 0

Dim b As Double = 0

Dim a As Double = 0

Dim weight As Double

For k = 0 To nn

'需要解决的是周边遍历颜色值然后相加(r=r1*weight1+r2*weight2+r3*weight3+r4*weight4+r5*weight5+...r*weight)

yi = Int(k / n)

xi = k - yi * n

yi -= Radius

xi -= Radius

iiw = iw + xi

iih = ih + yi

'yi = Int(k / n)

'xi = k - yi * n

'iih = ih + yi - Radius

'iiw = iw + xi - Radius

If (iiw  0 OrElse iih  0) Or (iiw  w - 1 OrElse iih  h - 1) Then

iiw = iw

iih = ih

iii = i

Else

iii = iih * w

iii += iiw

End If

weight = gaussMatrix(k) / 1000

r += TMPrgb(iii).R * weight

g += TMPrgb(iii).G * weight

b += TMPrgb(iii).B * weight

a += TMPrgb(iii).A * weight

Next

'TMPrgb(i).col = tmpdata(i)

'r = TMPrgb(i).R * weight

'g = TMPrgb(i).G * weight

'b = TMPrgb(i).B * weight

BMPrgb(i).R = IIf(r  255, 255, r)

BMPrgb(i).G = IIf(g  255, 255, g)

BMPrgb(i).B = IIf(b  255, 255, b)

BMPrgb(i).A = IIf(a  255, 255, a)

bmpdata(i) = BMPrgb(i).col

'Debug.Print(TMPrgb(i).R)

Next

Marshal.Copy(bmpdata, 0, dest.Scan0, Number)

tmp.UnlockBits(source)

bmp.UnlockBits(dest)

newbmp = bmp.Clone

tmp.Dispose()

' End Try

End Sub

''' summary

''' 高斯卷积矩阵

''' /summary

''' remarks/remarks

Protected Sub MakeGaussMatrix()

Dim Q As Double = Radius / 2

If (Q = 0.0) Then Q = 0.1

Dim n As Integer = Radius * 2 + 1

Dim index As Integer = 0

nuclear = 0

ReDim gaussMatrix(n * n)

Dim x As Integer

Dim y As Integer

For x = -Radius To Radius

For y = -Radius To Radius

gaussMatrix(index) = Math.Round(Math.Exp(-((x * x + y * y)) / (2.0 * Q * Q)) / (2.0 * Math.PI * Q * Q) * 1000.0)

nuclear += gaussMatrix(index)

index += 1

Next

Next

End Sub

End Class

使用方法.

Dim bmp As Bitmap = PictureBox1.Image.Clone

Dim x As New gaoshiBLUR

x.Radius = 30

x.MaskShadow(bmp)

PictureBox2.Image = x.newbmp.Clone

vb 图片缩小不清晰??

这个需要重新做算法的,没有算法进行优化,直接用image或picture的话,缩小图片是有距齿的,所以看起来不清楚。

你可以在摆渡一下关键字:VB中平滑消除图片锯齿的纯VB代码解决方法和演示

搜到的下载地址,有的需要注册一个会员才能下载,但是免费的。


分享标题:vb.net图片模糊的简单介绍
文章来源:http://www.cdkjz.cn/article/hihgoj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220