0
有没有人有办法将透明度为BufferedImage
的BMP存储在Java中?最好使用ImageIO
API。使用ImageIO写入带有透明度的BMP
出于某种原因,我无法在ARGB(BGRA)格式中写入BMP,即使the BMP has supported alpha channel since, at least, Win95。但是,我可以轻松地将相同的图像编写为PNG。它也可以很好地存储没有alpha的图像,如TYPE_INT_RGB
或TYPE_3BYTE_BGR
。
考虑下面的代码片段:
public static void main(String[] args) throws IOException {
if (!ImageIO.write(new BufferedImage(300, 200, BufferedImage.TYPE_INT_ARGB), "BMP", new File("foo.bmp"))) {
System.err.println("Couldn't write BMP!");
}
if (!ImageIO.write(new BufferedImage(300, 200, BufferedImage.TYPE_INT_ARGB), "PNG", new File("foo.png"))) {
System.err.println("Couldn't write PNG!");
}
}
输出:
Couldn't write BMP!
谢谢!我也发现,这非常令人失望......我可能只会写我自己的BMP插件。毕竟,格式非常简单。 :-) – haraldK