2017-08-08 158 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