java - 使用具有透明图像的 Graphics.copyArea

标签 java graphics

我正在尝试移动图像的一部分,目前正在使用 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/

相关文章:

java - 覆盖等于和哈希码java

将具有浮点顶点的段映射到二维整数空间(伪像素)的算法

c++ - ASCII "graphics"库?

c - OpenGL从角落移动物体

svn - 什么策略最适合在 SVN 中存储艺术 Assets ?

java - 在面板上绘制 JTable 行和列

java - 尝试使用代理创建 HTTPUrlConnection 时出现 UnknownHostException

java - 为什么 chrome 驱动程序在 @Before 中不起作用?

java - 在Hbase中存储列表数据?

java - 如果拒绝打开文件名中包含特殊字符的文件,如何修复 java?