2014-02-11 2 views
0

새 그림이 원본의 올바른 회전이되도록 newPixels [row] 및 [col]을 설정하는 방법을 알 수 없습니다. 오버 바운드 오류가 계속 발생합니다. 내가 여기서 잘못 읽은 곳을 볼 수 있니?java (netbeans)를 사용하여 90도 회전 그림

/** Rotate the image 
*/ 
    public void rotate() 
    { 
     int newWidth = height; 
     int newHeight = width; 
     int [] [] newPixels = new int [newHeight] [newWidth]; 
     for (int row = 0; row < height; row ++) 
      for (int row2 = 0; row2 < newHeight; row2 ++) 
       for (int col = 0; col < width; col ++) 
       for (int col2 = 0; col2 < newWidth; col2 ++) 
       {newPixels[row2][col2] = pixels[width-col-1][height-row-1];} 

    width=newWidth; 
    height=newHeight; 
    pixels = newPixels; 
    } 
+0

그냥 AffineTransform을 사용하면됩니다. – EJP

답변

0

루프가 너무 많습니다. 그것은 당신이 그것을 만드는 것보다 간단합니다. 행/열로 모든 픽셀을 반복하고 다음과 같이 행을 새 열에, 열을 새로운 행에 할당하면됩니다.

관련 문제