2011-11-27 2 views
1

이미지가있는 패널이 포함 된 Java 프로그램을 사용해야합니다. 사용자가 이미지를 두 번 클릭하면 프로그램은이 두 점 사이에 포함 된 이미지 부분의 대비를 증가시키고 나머지 부분은 줄여야합니다. 이 작업을 수행하는 방법에 대한 일반 지침이 필요합니다.어떻게 이미지를 두 부분으로 분리 할 수 ​​있습니까? 한 부분의 대비를 높이고 다른 부분의 대비를 줄이는 방법은 무엇입니까?

저는 Java 2D를 사용해야하고 이미지의 대비를 높이거나 낮추는 방법을 알고 있습니다. 그러나 어떻게 이미지를 두 부분으로 분리 할 수 ​​있는지 잘 모르겠습니다.

미리 감사드립니다.

답변

0

이 코드는 사용할 수 있습니다. 그것은 이미지를 셀로 나눠서 처리합니다.

public static BufferedImage[] splitImage(BufferedImage img, int cols, int rows) { 
    int wCell = img.getWidth()/cols; 
    int hCell = img.getHeight()/rows; 
    int imageBlockIndex = 0; 
    BufferedImage imgs[] = new BufferedImage[wCell *hCell ]; 
    for(int y = 0; y < rows; y++) { 
     for(int x = 0; x < cols; x++) { 
      imgs[imageBlockIndex] = new BufferedImage(wCell , hCell , img.getType()); 
      // Draw only one portion/cell of the image 
      Graphics2D g = imgs[imageBlockIndex].createGraphics(); 
      g.drawImage(img, 0, 0, wCell , hCell , wCell *x, 
            hCell *y, wCell *x+wCell , hCell *y+hCell , null); 
      g.dispose(); 
      imageBlockIndex++; 
     } 
    } 
    return imgs; 
} 
관련 문제