对于Java程序(“常规”程序,而不是Applet和/或Android等),我具有透明的PNG,可以将其加载并绘制在其他图片上,效果很好。现在,对于下面没有其他图片的情况(确定是不是问题,相应的代码已经有效实施),我希望它们变得不透明,但不是简单地设置背景色;因为相关的png源文件是全彩色的,只是它们的不透明度(alpha值)降低了,所以我想简单地将所有颜色的不透明度提高到100%没问题,我只是不知道命令来做到这一点。到目前为止,首选的且有针对性的方式是将它们绘制在BufferedImage中,然后分别进行修改,但是要说:如何?
TLDR:.png中具有<100%不透明度(整个图片的值相同)的图像,如何在Java中使其不透明,最好使用BufferedImage或更简单
预先感谢您的任何答案
您可以尝试RescaleOp
将Alpha分量一直缩放到不透明:
float[] scales = { 1f, 1f, 1f, 0f }; // R, G, B, A
float[] offsets = {0f, 0f, 0f, 255f}; // R, G, B, A
RescaleOp rescaler = new RescaleOp(scales, offsets, null);
BufferedImage opaque = rescaler.filter(original, null);
有关更多信息,请参见此Java 2D教程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句