java - 具有透明 PNG 的 BufferedImage

标签 java bufferedimage

我使用以下代码将具有透明背景的 PNG 上传到 Java 服务器

        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);

我似乎无法将背景设置为透明,它必须有颜色?

无论如何要有透明背景吗?

最佳答案

使用 TYPE_INT_ARGB 而不是 TYPE_INT_RGB

关于java - 具有透明 PNG 的 BufferedImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45560039/

相关文章:

java - 运行 Selenium IDE 时出错 "Error: Permission denied to access property ' nr@context'

java - 如何从多层托盘货架上挑选元素

java - Springboot 与 Elasticsearch 5.0 客户端 - Log4j2 错误

java - 绘制 BufferedImage 问题

java - 如何判断两个小BufferedImage是否重复?

java - 如何在 GWT 中将自定义 HTML 元素注册为小部件

java - 使用自定义字段中的特定条件断言预期异常

java - Windows 64 上的 DICOM 图像到 BufferedImage

java - 加速大量 Random.nextint 调用

java - 使用java将jpg图像添加在一起