java - PNG用Java读写会增加文件大小

标签 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);
    }
}

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

最佳答案

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

关于java - PNG用Java读写会增加文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706133/

相关文章:

java - CA PEM 文件到 jks tomcat 信任库

java - 使用 Java AWS SDK 的 Cloudfront 限时(签名)URL

java - 安卓 GPS 错误

java - tomcat.dbcp...无法为连接 URL '' 创建类 'null' 的 JDBC 驱动程序

java - JUnit Spring MVC

java - 降低java中的图像分辨率

python - 查找 OpenCV 轮廓的面积

opencv - OpenCV Sobel内核孔径为7或31

python - 在Python中添加两个不同大小的图像或填充白色像素以使其更大

c++ - 如何使用 HOG 描述符检测图像中的对象?