2011-02-14 79 views

回答

0

基本上,你需要做的是:

  1. 創建一個BufferedImage,並用圖形鏈接它反對
  2. 設置裁剪區域
  3. 繪製到此Graphics對象
  4. 在應用過濾器BufferedImage object

In pseudocode:

private BufferedImage bufferedImage = new BufferedImage() 
private Graphics2D graphics = bufferedImage.createGraphics() 

void paint(Graphics2D input) { 
    graphics.clip(selectionArea.getShape()) 
    upperCanvas.paint(graphics) 

    BufferedImageOp op 
    bufferedImage = op.filter(bufferedImage, new BufferedImage()) 

    input.drawImage(bufferedImage) 
} 

對於應用過濾器,見java.awt.image

正如你可以看到,這可以可以在Java2D的完成,但API是相當複雜的。如果你有興趣,我可以建議紙漿作爲替代框架。它包含幾個預定義的過濾器和一個用於應用它們的單行API。請參閱demo。還包括一個Java2DSprite類,以便在pulpcore和java2d之間移植。