1

对于 Java 程序(“常规”程序,而不是 Applet 和/或 Android 等),我有透明的 PNG,可以加载并绘制在其他图片上,效果很好。现在,对于下面没有其他图片的情况(确定是否是这种情况不是问题,相应的代码已经在工作中实现),我希望它们变得不透明,但不是简单地设置背景颜色;由于相关的 png 源文件是全彩色的,只是降低了不透明度(alpha 值),我想,简单地将所有颜色的不透明度提高到 100% 是没有问题的,我只是不知道命令去做。迄今为止,首选且有针对性的方法是将它们绘制在 BufferedImage 中,然后分别进行修改,但如前所述:如何?

TLDR:来自 .png 的图像,不透明度 <100%(整个图片的值相同),如何在 Java 中制作不透明,最好使用 BufferedImage 或更简单

提前感谢您的任何答案

4

1 回答 1

2

您可以尝试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 教程

于 2013-08-12T09:00:28.843 回答