2009-12-01 26 views
1

我們使用JAI(0​​)在Java中縮放和裁剪圖像。我們想在我們的圖像上創建圓角。我們如何做到這一點?使用Java和JAI的圖像上的圓角

圖片是JPG和PNG。我認爲使用JPG來做這件事更容易?

的影像從JAI

PlanarImage src = JAI.create(...,...); 

一個PlanarImage可轉化爲java.awt.Graphics對象

有沒有人這樣做呢?

回答

2

PNG支持透明的alpha通道,但JPG不支持。因此,對於JPG,您還必須選擇一種顏色來繪製圓角矩形的「不可見」部分。

有一類java.awt.geom.RoundRectangle2D可用做到這一點:

public void paint(Graphics g) { 
    Graphics2D g2d = (Graphics2D) g; 
    RoundRectangle2D rr = new RoundRectangle2D.Float(50, 50, 200, 100, 10, 10); 
    g2d.draw(rr); 
} 

類RoundRectangle2D的浮子()方法需要六個參數:

  • 前兩個代表左上角的位置角。
  • 參數3和4表示圓角矩形的寬度和高度。
  • 最後兩個參數表示在 拐角處繪製的弧的寬度和高度。

因此,繪製一個圓角矩形,它只包含想要圓角的圖像,然後重疊或使用蒙版以獲得所需的效果。

0

什麼能夠防止您從圖像中獲取的圖形對象上繪製任何角?我不確定你的「圓角」應該是什麼樣子,但是你可以在Graphics對象上執行所有合理的繪製操作。

+1

是的,我認爲需要某種面具來「切出」角落。但是如何? – Tommy 2009-12-01 16:49:20