Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '------------------
- 'Creator: aeonhack
- 'Site: elitevs.net
- 'Created: 11/24/2011
- 'Changed: 11/24/2011
- 'Version: 1.0.1
- '------------------
- Class ScreenSearch
- Private G As Graphics
- Private B As Bitmap
- Private R As Rectangle
- Private BD As BitmapData
- Private X, Y As Integer
- Private Row, Column As Integer
- Private Count As Integer
- Private _GetPoint As Byte()
- Sub New()
- B = New Bitmap(1, 1)
- G = Graphics.FromImage(B)
- End Sub
- Sub GetScreen(ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer)
- B.Dispose()
- G.Dispose()
- R = New Rectangle(0, 0, width, height)
- B = New Bitmap(width, height, PixelFormat.Format24bppRgb)
- G = Graphics.FromImage(B)
- G.CopyFromScreen(x, y, 0, 0, R.Size, CopyPixelOperation.SourceCopy)
- End Sub
- Function GetPixel(ByVal x As Integer, ByVal y As Integer) As Color
- Return B.GetPixel(x, y)
- End Function
- Function GetPoint(ByVal c As Color, ByVal offset As Integer) As Point
- Count = 0
- BD = B.LockBits(R, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb)
- _GetPoint = New Byte((BD.Stride * R.Height) - 1) {}
- Marshal.Copy(BD.Scan0, _GetPoint, 0, _GetPoint.Length)
- B.UnlockBits(BD)
- For Y = 0 To R.Height - 1
- Row = Y * BD.Stride
- For X = 0 To R.Width - 1
- Column = Row + X * 3
- If _GetPoint(Column) = c.B AndAlso _
- _GetPoint(Column + 1) = c.G AndAlso _
- _GetPoint(Column + 2) = c.R Then
- If Count = offset Then
- Return New Point(X, Y)
- Else
- Count += 1
- End If
- End If
- Next
- Next
- Return New Point(-1, -1)
- End Function
- Function Contains(ByVal c As Color) As Boolean
- Return Not (GetPoint(c, 0).X = -1)
- End Function
- End Class
Add Comment
Please, Sign In to add comment