【问题标题】:vb.net recolour [closed]vb.net重新着色[关闭]
【发布时间】:2012-11-29 21:57:12
【问题描述】:

我想知道如何更正此功能 在我的项目中,

我的计划是

让我的 picBox2 变成位图

从中获取 RGB 像素

然后把它放回一个新的位图中 之后我可以使用这个函数来转换我的图像的颜色

我是这样写的:

    For row = 1 To 300
        For col = 1 To 300
            'MsgBox(row, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "DEBUGSHIT")

            PixelColor = BitMapforRGB.GetPixel(row, col)
            PixelColor = BitMapforRGB.GetPixel(row, col)

            R = (PixelColor.R + vsbRed.Value) * 0.5
            G = (PixelColor.G + vsbGreen.Value) * 0.5
            B = (PixelColor.B + vsbBlue.Value) * 0.5

            Dim newColor As New Color
            newColor = Color.FromArgb(R, G, B)

            RGBtoBitmap.SetPixel(row, col, newColor)

        Next
    Next

    'I try to change it to 
    'Dim MyShade As Color = ColorTranslator.FromOle(
    '   RGB(Red(row,col),Green(row,col),Blue(row,col))
    'but it seem not right.

    Dim reColor As New Bitmap(Me.pixBox2.Image)
    pixBox2.Image = reColor
End Sub

ps:这个错误是 参数必须为正数且

参数名称:y

【问题讨论】:

  • RGBtoBitmap.SetPixel(row, col, newColor) 行抛出异常吗?
  • 不,我正在考虑使用不同的方式来调试它,但我很困惑,我是 VB 新手..
  • 对于下一个问题,请让样本尽可能小(即在这种情况下,它应该类似于PixelColor = BitMapforRGB.GetPixel(0, 300))。此外,脏话不会让您的问题更具吸引力,因此请避免在公共示例中使用 s#$#@$ 和任何其他词,如果您也避免使用它们,您自己的代码也不会受到太大影响。

标签: vb.net colors picturebox


【解决方案1】:

您应该从 0 迭代到图像大小。 IE。 0 到 BitMapforRGB.Width-1col

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 2021-06-24
    • 2016-04-30
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多