首页 > 解决方案 > VB.Net 自定义位图

问题描述

它有点复杂,我会尽力解释我想要实现的目标。

我已经使用位图和从屏幕功能复制一些。这一切都很好。但是这些位图总是矩形的,如果可能的话,我想使用我自己的位图。

举个例子:

在我屏幕上的 x、y 位置某处是一张地图,这张地图有几条路径和交叉点。还有一些我不感兴趣的房子和东西,我只关注中间的路径。

现在我想使用位图和从屏幕复制功能扫描这张地图的 Argb 像素。我已经这样做了,效果很好,但不是只扫描路径的像素,而是扫描整个地图的像素。但我只希望扫描这些路径。

我有这张地图作为模板,可以对其进行截图。我现在可以将此地图导入 Photoshop,将房屋和我不需要的所有东西涂成黑色,并使路径透明并将它们作为位图导入,以便“从屏幕复制”功能仅扫描路径,或者甚至可能吗?如果有人能带领我朝着正确的方向前进,我还没有找到任何关于 vb.net 的内容,我将非常感激 :)

这是我到目前为止得到的代码 - 简单的像素搜索功能:

Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

    Dim xd3 = Color.FromArgb(255, 100, 100, 100) 'Searching for this color on the screen

    Dim b As New Bitmap(2210, 1100)  'Position of Bitmap
    Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(b)
    g.CopyFromScreen(Me.Left, Me.Top, 0, 0, b.Size) 'Searching on Screen

    For i = 0 To (Me.Width - 0) 'searching each pixel
        For j = 0 To (Me.Height - 0) 'searching each pixel
            If b.GetPixel(i, j) = xd3 Then 'If pixel has same color that im searching for it will show a messagebox true
                MessageBox.Show("true")
            End If
        Next
    Next

End Sub

标签: vb.netdictionarysearchbitmap

解决方案


推荐阅读