有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

透明度如何在调整缓冲区大小后删除黑色背景java

我写了一个方法来调整BuffereImage的大小,但是在这样做之后。png图像最终失去了透明度,取而代之的是黑色背景

public BufferedImage getSizedImg(BufferedImage otherImage,int width,int height){
    BufferedImage outputImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

    Graphics g = outputImg.createGraphics();
    g.drawImage(otherImage, 0, 0, width, height, null);
    g.dispose();
    return outputImg;
}

我如何修正方法,使图像保持透明


共 (1) 个答案

  1. # 1 楼答案

    简单。在此处创建新的重新调整大小的BuffereImage时:

    BufferedImage outputImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    

    不要使用BufferedImage.TYPE_INT_RGB,而是使用BufferedImage.TYPE_INT_ARGB"A"代表“alpha”,这给了你透明度。有关这方面的更多信息,请参阅BufferedImage API