2017-08-08 133 views
0

我使用下面的代码的BufferedImage透明PNG

 byte[] imageData = Base64.decodeBase64(encodedImage); 

     ByteArrayInputStream bais = new ByteArrayInputStream(imageData); 
     BufferedImage bufferedImage = ImageIO.read(bais); 
     BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(), 
       bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB); 
     newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.OPAQUE, null); 

     Scene scene = sceneService.getScene(sceneId); 

     java.io.File file = new java.io.File(Constants.TEMP_DIR_PATH 
       + UUID.randomUUID().toString() +".png"); 

     ImageIO.write(newBufferedImage, "PNG", file); 

我似乎无法设置背景为透明上传PNG透明背景的Java服务器,它必须有一个颜色?

无论如何有一个透明的背景?

+1

使用TYPE_INT_ARGB –

+0

是刚刚发现。添加它作为答案,我会标记它是正确的。 – user5839

回答

2

使用TYPE_INT_ARGB而不是TYPE_INT_RGB