java - 透明背景 png BufferedImage

  显示原文与译文双语对照的内容

我试图用一个透明的替代白色背景在Java显示中创建一个 png 。 尝试在新 Color(0,0,0,0) 中设置为 0 - 背景显示为白色?

我在使用 BufferedImage






 WritableRaster raster = onscreenImage.getRaster();


 WritableRaster newRaster;


 newRaster = raster.createWritableChild(0, 0, width, height, 0, 0, new int[] {0, 1, 2});


 DirectColorModel cm = (DirectColorModel) onscreenImage.getColorModel();


 DirectColorModel newCM = new DirectColorModel(cm.getPixelSize(),


 cm.getRedMask(),


 cm.getGreenMask(),


 cm.getBlueMask());


 BufferedImage rgbBuffer = new BufferedImage(newCM, newRaster, false, null);


 try { ImageIO.write(rgbBuffer, suffix, file); }


 catch (IOException e) { e.printStackTrace(); }




时间: 原作者:

你没有在颜色模型中指定alpha组件。 请按以下方式尝试:


newRaster = raster.createWritableChild(0, 0, width, height, 0, 0, null);


DirectColorModel cm = (DirectColorModel) onscreenImage.getColorModel();


DirectColorModel newCM = new DirectColorModel(cm.getPixelSize(),


 cm.getRedMask(),


 cm.getGreenMask(),


 cm.getBlueMask(),


 cm.getAlphaMask());



...