我正在使用以下代码阅读PNG图像:
BufferedImage img = ImageIO.read(new URL(url));
Run Code Online (Sandbox Code Playgroud)
在显示它时,有一个黑色背景,我知道这是由PNG透明度引起的.我试图解决这个问题是将每个像素设置为不等于255的alpha值BufferedImage.TYPE_INT_RGB
.这并没有解决问题.
我找到了问题的答案,建议使用BufferedImage.TYPE_INT_RGB
,但我不确定如何应用上面给出的代码.任何帮助,将不胜感激.
Mad*_*mer 21
创建第二种BufferedImage
类型TYPE_INT_RGB
......
BufferedImage copy = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_RGB);
Run Code Online (Sandbox Code Playgroud)
将原件绘制到副本中......
Graphics2D g2d = copy.createGraphics();
g2d.setColor(Color.WHITE); // Or what ever fill color you want...
g2d.fillRect(0, 0, copy.getWidth(), copy.getHeight());
g2d.drawImage(img, 0, 0, null);
g2d.dispose();
Run Code Online (Sandbox Code Playgroud)
你现在有了一个非透明的图像版本......
要保存图像,请查看编写/保存图像
归档时间: |
|
查看次数: |
4921 次 |
最近记录: |