我正在尝试在Java中动态生成清晰的跟踪像素,但遇到了一些问题。将其返回给用户没有问题,但似乎无法正确显示像素。我究竟做错了什么?

这就是我所拥有的,这给了我1x1的白色像素。如何使它尽可能小(文件大小)并使之透明?

BufferedImage singlePixelImage = new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_GRAY_TYPE);
singlePixelImage.setRGB(0, 0, 0xFFFFFF);

最佳答案

我相信GREY图像类型不支持透明性。仅修改了Łukasz的答案以确切显示正在发生的事情。当您创建新图像时,所有像素的初始值都设置为0。这意味着它是完全透明的。在下面的代码中,我将其明确显示:

    BufferedImage singlePixelImage = new BufferedImage(1, 1, BufferedImage.TYPE_4BYTE_ABGR);
    Color transparent = new Color(0, 0, 0, 0);
    singlePixelImage.setRGB(0, 0, transparent.getRGB());

    File file = new File("pixel.png");
    try {
        ImageIO.write(singlePixelImage, "png", file);
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }

关于java - 动态生成透明的跟踪像素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4548769/

10-13 03:31