2013-01-24 2 views
-2

java에서 작업 중이며 이미지가 생성됩니다. 마우스가 생성 된 이미지를 지나갈 때, 이미지에 블러 또는 픽셀 필터를 사용해야합니다.마우스 아래에서 이미지를 흐리게하는 방법

이 작업을 수행하기 위해 어떤 방법을 사용해야합니까? 여기에서

+0

나는 java.awt.image.ConvolveOp를 사용하여 전체 이미지를 흐리게 처리했습니다. – ppst99

+1

"무엇을 시도 했습니까?"즉 ** 여기에 코드를 붙여 넣을 수 있습니까? ** – BackSlash

+1

1) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2) 해결책은 아마도 날카로운 이미지를 그리는 것이며, 마우스 아래의 영역에 클립을 적용하고 흐려진 이미지를 그립니다. –

답변

0
public void test(int x, int y){ // Here x and y are the parameter thrown by mouseDragged() function 
blur1 = displayImage; // blur1 is Image variable 

blur2 = new BufferedImage(blur1.getWidth(this), blur1 //blur2 is BufferedImage Variable 
    .getHeight(this), BufferedImage.TYPE_INT_RGB); 
tst = blur2.createGraphics(); // tst is Graphics2D variable 
tst.drawImage(blur1, 0, 0, this); 
blur3 = new BufferedImage(blur1.getWidth(this), blur1 //blur3 is BufferedImage Variable 
    .getHeight(this), BufferedImage.TYPE_INT_RGB); 
float data[] = { 0.0625f, 0.125f, 0.0625f, 0.125f, 0.25f, 0.125f, 
    0.0625f, 0.125f, 0.0625f }; 
Kernel kernel = new Kernel(3, 3, data); 
ConvolveOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, 
    null); 
blur2 = OSC.getSubimage(x, y, 20, 20); // 20 is the size in pixels where the effect is applied 
blur3 = OSC.getSubimage(x, y, 20, 20); 
convolve.filter(blur2, blur3);  
    Graphics osg = OSC.getGraphics(); 
    osg.setColor(fillColor); 
    osg.drawImage(blur3,x,y,null); 
    osg.dispose(); 
    repaint(); 
} 
0

봐 : http://www.java2s.com/Code/Java/2D-Graphics-GUI/ImageEffectSharpenblur.htm

당신이 원하는 이미지를 필터링 한 후 인수로 커널 인으로로 ConvolveOp를 인스턴스화하고, 당신이 원하는 값대로의 배열 커널을 정의해야합니다.

+0

감사하지만 이것은 전체 이미지만을 흐리게합니다. – ppst99

+0

저는 이것을 직접 구현하지는 않았지만 전체 이미지를 흐리게 만들 수 있다면 이미지의 일부를 흐릿하게 만들 수 있어야합니다. 프로그래머는 생각해야합니다. 아시다시피 ... – Jimmt

관련 문제