我的小型Java程序試圖使png圖像變暗。它在我的Mac上工作正常,但是當我嘗試在安裝了java 1.7_07的Windows PC上運行它時,它除了空的JPanel外沒有任何顯示,圖像完全消失。在Windows 7中使用Graphics2D問題使圖像變暗64位
下面是代碼:
class MapCanvas extends JPanel {
private Color color;
RescaleOp op;
BufferedImage sourceImage, bi;
public MapCanvas() {
try {
sourceImage = ImageIO.read(new File(MAP_FILENAME));
bi = new BufferedImage(sourceImage.getWidth(), sourceImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
op = new RescaleOp(.8f, 0, null);
bi = op.filter(bi, null);
Graphics2D g = bi.createGraphics();
g.drawImage(sourceImage, 0, 0, 500, 382, null);
g.dispose();
} catch (Exception e) {
e.printStackTrace();
}
// set size for the panel
Dimension size = new Dimension(500, 382);
this.setBackground(new Color(34, 102, 187));
setPreferredSize(size);
setSize(size);
setLayout(null);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g2d = (Graphics2D) g;
g2d.drawImage(bi, op, 0, 0);
}
}
誰知道爲什麼我得到這個?非常感謝。
「預期它不工作」 - 它是做什麼的話,以及它是如何從你期望什麼不同呢?不要只說「不行」 - 解釋它,否則你只是讓人難以幫助你。 – Jesper
對不起,我已經編輯過。問題是畫布是空的,不顯示圖像。 – tuanva
作爲參考,有一個完整的示例[這裏](http://stackoverflow.com/a/5864503/230513)。 – trashgod