2017-04-04 71 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