[英]Transparent PNG - BufferedImage contains not existing pixels - java
[英]Transparent background png - Java - BufferedImage
我正在嘗試從Java顯示中使用透明而不是白色背景的圖像創建png。 嘗試在新的Color(0,0,0,0)中將alpha設置為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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.