【问题标题】:BufferedImage with Transparent PNG带有透明 PNG 的 BufferedImage
【发布时间】:2017-08-08 13:43:38
【问题描述】:

我正在使用以下代码将具有透明背景的 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
  • 是的,刚刚发现。将其添加为答案,我会将其标记为正确。

标签: java bufferedimage


【解决方案1】:

使用 TYPE_INT_ARGB 代替 TYPE_INT_RGB

【讨论】:

    猜你喜欢
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2015-11-12
    相关资源
    最近更新 更多