读取和写入 png 文件时遇到问题。我用 ImageIO 将它读取到字节数组,然后使用 ImageIO 再次写入这个字节数组。但是文件大小会显着增加。怎么会这样?
public BufferedImage toBufferedImage(InputStream inputstream) {
try {
return ImageIO.read(inputstream);
} catch (Exception e) {
throw new IllegalStateException("Can't convert to buffered image", e);
}
}
public byte[] toByteArray(BufferedImage bufferedImage, String filetype) {
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
ImageIO.write(bufferedImage, filetype, output);
return output.toByteArray();
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
跟进:是否有支持用 Java 编写且不需要任何 native 代码的压缩 PNG 的库?
最佳答案
这很可能是由于 Java 和创建原始 PNG 的任何算法之间的压缩算法不同。
关于java - PNG用Java读写会增加文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706133/