我正在尝试移动图像的一部分,目前正在使用 g.copyArea()。它适用于纯色,但不会复制透明像素(因为它们是透明的!)。我想让下面的颜色透明。
此图像显示了正在发生的情况,如果复制了起始形状,但我希望复制整个区域,覆盖下面的所有像素。
alt text http://www.freeimagehosting.net/uploads/3f4b8888b0.png
这就是我想要的:
alt text http://www.freeimagehosting.net/uploads/ee911ea35a.png
BufferedImage b;
...
Graphics g = b.getGraphics();
g.copyArea(x,y,w,h,dx,dy);
我考虑过将一张图片复制到另一张图片,清空原图再复制回新位置,但一定有更好的办法吗?
免责声明:这是家庭作业的部分。
最佳答案
像这样使用 g.setComposite(AlphaComposite.Src):
Graphics2D g;
...
g.setComposite(AlphaComposite.Src)
g.copyArea(x,y,w,h,dx,dy);
感谢 unwind 建议使用 Graphics2D。
关于java - 使用具有透明图像的 Graphics.copyArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/638363/