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 に答える