2012-11-17 3 views
1

나는 이미지의 R 구성 요소를 읽고 배열에 저장 내 프로그램이 스크립트를했습니다 : 불행하게도 난 항상 얻을저장 R 성분 2010

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 비트 맵의 ​​차원은 동일하지만 오류 메시지가 나타나는 이유는 무엇입니까? 누군가 제발 나를 도와주세요 아니면 배열에 저장하는 또 다른 방법이 있습니다. 고맙습니다. 그리고 저의 가난한 영어로 용서해주십시오.

답변

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