vb.net 教程 5-13 图像处理之像素处理 8-3

前端之家收集整理的这篇文章主要介绍了vb.net 教程 5-13 图像处理之像素处理 8-3前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
之前两节都是保留的单一色系,这次我们要尝试保留多个色系。
还是先看看运行效果,保留绿、蓝、紫、黄这几个色系颜色:
有了上两节的基础,这次很容易理解。
  1. '自定义
  2. Private Sub Button13_Click(sender As Object,e As EventArgs) Handles Button13.Click
  3. Dim pSourceColor As Color
  4. Dim pDestColor As Color
  5. Dim destImg As New Bitmap(sourceImg.Width,sourceImg.Height)
  6.  
  7. For i As Integer = 0 To sourceImg.Width - 1
  8. For j As Integer = 0 To sourceImg.Height - 1
  9. pSourceColor = sourceImg.GetPixel(i,j)
  10. Select Case getSingleColor(pSourceColor)
  11. Case "R"
  12. If cbR.Checked = True Then
  13. If cbStrong.Checked = True Then
  14. pDestColor = Color.FromArgb(pSourceColor.R,0)
  15. Else
  16. pDestColor = pSourceColor
  17. End If
  18. Else
  19. pDestColor = getAverage(pSourceColor)
  20. End If
  21. Case "G"
  22. If CBG.Checked = True Then
  23. If cbStrong.Checked = True Then
  24. pDestColor = Color.FromArgb(0,pSourceColor.G,0)
  25. Else
  26. pDestColor = pSourceColor
  27. End If
  28. Else
  29. pDestColor = getAverage(pSourceColor)
  30. End If
  31. Case "B"
  32. If cbB.Checked = True Then
  33. If cbStrong.Checked = True Then
  34. pDestColor = Color.FromArgb(0,pSourceColor.B)
  35. Else
  36. pDestColor = pSourceColor
  37. End If
  38. Else
  39. pDestColor = getAverage(pSourceColor)
  40. End If
  41. Case "P"
  42. If cbP.Checked = True Then
  43. If cbStrong.Checked = True Then
  44. pDestColor = Color.FromArgb(pSourceColor.R,pSourceColor.B)
  45. Else
  46. pDestColor = pSourceColor
  47. End If
  48. Else
  49. pDestColor = getAverage(pSourceColor)
  50. End If
  51. Case "Y"
  52. If cbY.Checked = True Then
  53. If cbStrong.Checked = True Then
  54. pDestColor = Color.FromArgb(pSourceColor.R,0)
  55. Else
  56. pDestColor = pSourceColor
  57. End If
  58. Else
  59. pDestColor = getAverage(pSourceColor)
  60. End If
  61. Case "C"
  62. If cbC.Checked = True Then
  63. If cbStrong.Checked = True Then
  64. pDestColor = Color.FromArgb(0,pSourceColor.B)
  65. Else
  66. pDestColor = pSourceColor
  67. End If
  68. Else
  69. pDestColor = getAverage(pSourceColor)
  70. End If
  71. Case Else
  72. pDestColor = getAverage(pSourceColor)
  73. End Select
  74. destImg.SetPixel(i,j,pDestColor)
  75. Next
  76. Next
  77. picDest.Image = destImg
  78. End Sub
最后再来一张别的图片效果

好吧,还算不错。

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看 vb.net 教程 目录

猜你在找的VB相关文章