Java BufferedImage类有一长串名为图像类型的类变量,可用作BufferedImage构造函数的参数。如何决定使用哪种BufferedImage图像类型?
但是,Java文档对这些图像类型的用途做了最小限度的说明,它将如何影响要创建的BufferedImage。
我的问题是:
图像类型如何会影响到BufferedImage中产生的呢?它是否控制用于存储各种颜色(红色,绿色,蓝色)的位数及其透明度?
我们应该使用哪种图像类型,如果我们只是想创建
- 不透明图像
- 透明图像
- 半透明图像
我阅读了Java Doc中的描述很多次,但只是无法弄清楚我们应该如何使用它。例如,这样一句:
TYPE_INT_BGR
表示一个具有8位RGB颜色分量的图像,对应于Windows或Solaris风格的BGR颜色模型,与颜色蓝,绿,和红色打包成整数像素。没有阿尔法。该图像有一个DirectColorModel。当具有非透明alpha的数据存储在这种类型的图像中时,必须将颜色数据调整为非预乘形式,并丢弃alpha,如AlphaComposite文档中所述。
什么是半透明图像?它与透明图像有什么不同? –
@AndyTurner我记得我读过一些关于使图像的一部分透明的地方,而半透明的是调整整个图像的不透明度。例如,gif文件允许透明但不透明,而png文件支持两者。这是一个可能需要使用不同图像类型的示例。没有? – user3437460