VB.net 影像撷取像素RGB速度的问题
小弟写了一支用picture控键去撷取像素RGB的程序
并将RGB三原色的数值存入数据库
不过速度很慢 我是使用GetPixel函数
以下是我的代码:
Dim 取几张图了 = (From 图像数据表 In 颜色数据表.图像数据表 Order By 图像数据表.图像张数 Descending Select 图像数据表).FirstOrDefault
Dim 要插入的图数
If 取几张图了 Is Nothing Then
要插入的图数 = 1
Else
要插入的图数 = 取几张图了.图像张数 + 1
End If
'-----------------------------
Dim 图像数据表1 As New 图像数据表
Dim bmpImg As New Bitmap(pic.Image)
For x坐标 = 0 To pic.Width - 1
For y坐标 = 0 To pic.Height - 1
鼠标.坐标点的RGB = bmpImg.GetPixel(x坐标, y坐标)
图像数据表1.图像张数 = 要插入的图数
图像数据表1.X坐标 = x坐标
图像数据表1.Y坐标 = y坐标
图像数据表1.R = 鼠标.坐标点的RGB.R
图像数据表1.G = 鼠标.坐标点的RGB.G
图像数据表1.B = 鼠标.坐标点的RGB.B
颜色数据表.图像数据表.AddObject(图像数据表1)
颜色数据表.SaveChanges(System.Data.Objects.SaveOptions.None)
Next
Next
'在内存锁定状态下取得颜色点(Pixel)
Function GetP(ByVal i As Integer, ByVal j As Integer) As Color
Dim k As Integer = j * L + i * Bpx '索引位置计算
Dim C As Color = Color.FromArgb(rgb(k + 3), rgb(k + 2), rgb(k + 1), rgb(k))
Return C
End Function
Dim 取几张图了 = (From 图像数据表 In 颜色数据表.图像数据表 Order By 图像数据表.图像张数 Descending Select 图像数据表).FirstOrDefault
Dim 要插入的图数
If 取几张图了 Is Nothing Then
要插入的图数 = 1
Else
要插入的图数 = 取几张图了.图像张数 + 1
End If
'-----------------------------
Dim bmpImg As New Bitmap(pic.Image)
Dim 图像数据表1 As New 图像数据表
'Dim bmpImg As New Bitmap(区块x坐标, 区块y坐标)
'Dim R(pic.Width - 1, pic.Height - 1) As Byte, G(pic.Width - 1, pic.Height - 1) As Byte, B(pic.Width - 1, pic.Height - 1) As Byte
FastPixel.LockBMP(bmpImg)
For x坐标 = 0 To pic.Width - 1
For y坐标 = 0 To pic.Height - 1
图像数据表1.图像张数 = 要插入的图数
图像数据表1.X坐标 = x坐标
图像数据表1.Y坐标 = y坐标
图像数据表1.R = FastPixel.GetP(x坐标, y坐标).R
图像数据表1.G = FastPixel.GetP(x坐标, y坐标).G
图像数据表1.B = FastPixel.GetP(x坐标, y坐标).B
' 图像数据表1.R = BitConverter.ToInt32(R(x坐标, y坐标), 0)
颜色数据表.图像数据表.AddObject(图像数据表1)
颜色数据表.SaveChanges(System.Data.Objects.SaveOptions.None)
Next
Next
FastPixel.UnLockBMP(bmpImg)