我正在尝试在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/