使用透明度将多个图像叠加在一起

时间:2018-05-04 12:42:59

标签: java image swing jpanel

是否可以将多个图片添加到单个JPanel并使用顶部Image透明度频道查看基础Image?< / p>

1 个答案:

答案 0 :(得分:-2)

您可以,但如果您创建自己的JPanel扩展JPanel类版本,则会更容易。创建JPanel的子类并覆盖paint方法。在paint方法中,只需在另一个图像上绘制一个图像。

public class MiPanel extends JPanel {
  List<Image> images;

  ...

  void addIMage( Image im) {
    images.add( im)
  }

  @Override
  public void paint( Graphics g) {
    Graphics2D g2d = (Graphics2D)g;

    ...
    for ( Image im :images) {
      g2d.drawImage( im, 0,0, null);
    }
    ...
  }

创建List以存储图像和方法以将图像添加到列表中。然后,在paint方法中,绘制所有图像。当然,如果图像具有透明度,您将能够看到“下”图像。如果您动态创建图像,请记住将Color与alpha通道一起使用。如果您从文件加载图像,我建议您使用PNG。