将图像添加到画布 [重复]

Posted

技术标签:

【中文标题】将图像添加到画布 [重复]【英文标题】:Add an image to a canvas [duplicate] 【发布时间】:2020-04-30 08:07:16 【问题描述】:

我知道这里有关于此的堆栈溢出问题,但我没有在课堂上扩展画布。有没有其他方法可以在背景上绘制图像?

//setting up a JFrame with other stuff
Canvas c = new Canvas();
Image img;
try 
    img = ImageIO.read(new URL("https://bitterli.us/namelogo.png").openStream());
    img = img.getScaledInstance(700, 145, 0);
 catch (IOException e2) 
    // TODO Auto-generated catch block
    e2.printStackTrace();

c.setBackground(Color.black);
JPanel p = new JPanel();
c.setBounds(100, 500, 1050, 500);
p.setLayout(new BorderLayout());
p.add(c, BorderLayout.CENTER);
p.setBounds(100, 50, 1050, 600);
frame.add(p, BorderLayout.NORTH);

【问题讨论】:

您需要扩展 Canvas(根据其他问题)并在其绘制方法中绘制。要么添加 JLabel 并将图像显示为标签内的 ImageIcon 。你为什么要使用 AWT GUI 库,因为它已经过时了 20 多年? 另外,setBounds 不是你的朋友 【参考方案1】:

不要使用画布,只需使用 JPanel 并覆盖 paintComponent()

public void paintComponent(Graphics g) 
  super.paintComponent(g);
  g.drawImage(img, 0, 0, null);

【讨论】:

最好在这里回答:***.com/questions/299495/…

以上是关于将图像添加到画布 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将画布导出为 .gif 图像 [重复]

未指定暗淡时图像未填充画布[重复]

HTML画布正在拉伸内容[重复]

画布图像大小调整使文件更大[重复]

如何将 HTML5 画布保存为 png [重复]

画布仅保存部分图像并将其奇怪地拉伸[重复]