1

我的程序中有这个脚本来读取图像的 R 组件并将其保存在数组中:

Dim citra_asli As Bitmap = New Bitmap(PictureBoxAsli.Image)


    Dim i As Integer = 0
    Dim j As Integer = 0

    Dim redValue(i, j) As Integer

    ListBox3.Items.Add("Piksel--R--G--B")
    For i = 0 To ((citra_asli.Height) - 1)
        For j = 0 To ((citra_asli.Width) - 1)
            Dim R As Integer = citra_asli.GetPixel(i, j).R
            redValue(i, j) = R
            ListBox3.Items.Add((i.ToString + ("," + (j.ToString + ("  " + (redValue(i, j).ToString))))))
        Next
    Next

不幸的是,我总是收到此错误消息“索引超出了数组的范围。”。据我所知,redValue() 数组和 citra_asli 位图的尺寸相同,但为什么会出现错误消息?请有人帮助我,或者也许有另一种方法可以将其保存在数组中。谢谢你,请原谅我糟糕的英语。

4

1 回答 1

0

这应该是正确的,我已经测试过了。

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Dim citra_asli As Bitmap = New Bitmap(PictureBoxAsli.Image)
    Dim x As Integer = 0
    Dim y As Integer = 0
    Dim R As Integer = 0

    ListBox1.Items.Add("Piksel--R--G--B")
    y = citra_asli.Height
    x = citra_asli.Width
    Dim redValue(x, y) As Integer
    For y = 0 To (citra_asli.Height) - 1
        For x = 0 To (citra_asli.Width) - 1
            R = citra_asli.GetPixel(x, y).R
            redValue(x, y) = R
            ListBox1.Items.Add("[" & x.ToString & "," & y.ToString & "]  " & "(" & redValue(x, y).ToString & ",grn,blu)")
        Next
    Next
End Sub
于 2012-12-17T03:33:54.357 回答