2017-04-04 70 views
0
Image img = null; 
    try { 
     img = ImageIO.read(new File("pig.png")); 
    } catch (IOException e){ 

    } 
    Graphics g = img.getGraphics(); 
    g.drawImage(img, 0, 0, null); 

我使用本教程: https://docs.oracle.com/javase/tutorial/2d/images/Graphics.drawImage()不繪製圖像

程序運行,但圖像顯示不出來。

+0

我不能看到你已經在任何GUI組件上繪製圖像。 – hunter

+0

@hunter本教程沒有提到gui組件 – Jake

+0

@Jake:那麼這個圖像應該顯示在哪裏? – Berger

回答

1

你必須使用GUI組件的圖像

你可以簡單的使用Swing,

import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.Image; 
import java.awt.Toolkit; 

import javax.swing.JComponent; 
import javax.swing.JFrame; 

class DemoPaint extends JComponent { 

    public void paint(Graphics g) { 
    Graphics2D g2 = (Graphics2D) g; 

    Image picture = Toolkit.getDefaultToolkit().getImage("yourFile.gif"); 
    g2.drawImage(picture, 10, 10, this); 
    g2.finalize(); 
    } 
} 

public class DrawImageGraphics { 
    public static void main(String[] a) { 
    JFrame window = new JFrame(); 
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    window.setBounds(30, 30, 300, 300); 
    window.getContentPane().add(new DemoPaint()); 
    window.setVisible(true); 
    } 
} 

我希望這會有所幫助。

0

一旦加載圖片到圖片對象,創建一個緩衝圖像與透明

BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); 

繪製到緩衝圖像

Graphics2D bGr = bimage.createGraphics(); 
bGr.drawImage(img, 0, 0, null); 
bGr.dispose(); 
+0

我試過了,不幸的是它不起作用 – Jake