VB
An object-oriented programming language developed by Microsoft that is implemented on the .NET Framework. Previously known as Visual Basic .NET.
2,753 questions
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
hi guys.. i need replace color image without mask
example:
This person's picture has a green background. When I replace the green color to another color, it also replaces the color of the card
I drew a rectangle on the card, how do I exclude the rectangle from the replacement
replace color code:
Public Function ReplaceColor(ByVal _image As Image, ByVal _colorOld As Color, ByVal _colorNew As Color, ByVal _tolerance As Integer) As Image
Dim bmap As Bitmap = CType(_image.Clone(), Bitmap)
Dim c As Color
Dim iR_Min, iR_Max As Integer
Dim iG_Min, iG_Max As Integer
Dim iB_Min, iB_Max As Integer
iR_Min = Math.Max(CInt(_colorOld.R) - _tolerance, 0)
iR_Max = Math.Min(CInt(_colorOld.R) + _tolerance, 255)
iG_Min = Math.Max(CInt(_colorOld.G) - _tolerance, 0)
iG_Max = Math.Min(CInt(_colorOld.G) + _tolerance, 255)
iB_Min = Math.Max(CInt(_colorOld.B) - _tolerance, 0)
iB_Max = Math.Min(CInt(_colorOld.B) + _tolerance, 255)
For x As Integer = 0 To bmap.Width - 1
For y As Integer = 0 To bmap.Height - 1
c = bmap.GetPixel(x, y)
If (c.R >= iR_Min AndAlso c.R <= iR_Max) AndAlso (c.G >= iG_Min AndAlso c.G <= iG_Max) AndAlso (c.B >= iB_Min AndAlso c.B <= iB_Max) Then
If _colorNew = Color.Transparent Then
bmap.SetPixel(x, y, Color.FromArgb(0, _colorNew.R, _colorNew.G, _colorNew.B))
Else
bmap.SetPixel(x, y, Color.FromArgb(c.A, _colorNew.R, _colorNew.G, _colorNew.B))
End If
End If
Next
Next
Return CType(bmap.Clone(), Image)
End Function
my rectangle mastk info:
Private Rct2 As New Rectangle(247, 378, 100, 70)
Try adding an If inside your loops:
For x As Integer = 0 To bmap.Width - 1
For y As Integer = 0 To bmap.Height - 1
If Rct2.Contains(x, y) Then Continue For
. . .