使用Java进行PNG读写会增加文件大小

ber*_*ami 3 java image-processing

读取和写入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);
    }
}
Run Code Online (Sandbox Code Playgroud)

跟进:是否有任何库支持用Java编写的压缩PNG,不需要任何本机代码?

Dan*_*ong 5

这很可能是由于Java和创建原始PNG之间的压缩算法不同.