我有一个灰度图像(实际上是"lena")我想试验一下.我把它作为512x512 PNG文件,有216种灰度.
当我用Java ImageIO阅读它时,会发生什么:
String name = args[0];
File fi = new File(name);
BufferedImage img = ImageIO.read(fi);
Run Code Online (Sandbox Code Playgroud)
我得到一个只有154种颜色的BufferedImage !我只是意识到这一点,导致我处理过的图像显得粗糙,缺乏深黑色.
更刺激的是,当我使用XnView将PNG转换为GIF时,在这种情况下这是一个无损程序,用上面的代码读取GIF,我在BufferedImage中得到所有216种颜色.
是否有某种文档或描述,当我的PNG读取它时会发生什么?有设置来解决这个问题吗?我在最近的JDK1.8上做过这些实验.只是我对Java PNG支持的信任现在已经丢失,我稍后会使用彩色PNG.