我有JPanel
有两张图片(一张在另一张下面)。目标是让用户能够使用鼠标"刮掉"顶部图像,从而暴露底部图像的那一部分。
除了Java Swing而不是Python之外,它是Erase part of image on Tkinter canvas, exposing another image underneath。
这可能吗?我知道你可以使用BufferedImage.getSubimage
,但据我所知,这只能裁剪图像。
答案 0 :(得分:3)
假设您的Image支持alpha透明度,那么您只需将Image读入BufferedImage,然后使用BufferedImage的setRGB(...)方法清除图像:
BufferedImage image = ImageIO.read( new File( ... );
int transparent = new Color(0, 0, 0, 0).getRGB();
image.setRGB(??, ??, transparent);
因此,您需要使用MouseListener来处理MouseEvent以获取您想要透明的像素的位置。