繁体   English   中英

Java将图像转换为字节数组大小问题

[英]Java convert image to byte array size issues

我有下面的代码片段将图像转换为字节数组。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
baos.flush();
byte[] imageBytes = baos.toByteArray();
baos.close();

我面临的问题是图像的大小约为2.65MB。 但是,imageBytes.length给我的值超过5.5MB。 有人能让我知道我哪里出错吗?

PNG并不总是忠实的往返格式。 它的压缩alghoritm可以产生不同的结果。

编辑:同样适用于JPEG。

我使用下面的代码来解决问题。

FileInputStream fis = new FileInputStream(inputFile);

ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
    for (int readNum; (readNum = fis.read(buf)) != -1;) {
        bos.write(buf, 0, readNum); 
    }
} catch (Exception ex) {

}
byte[] imageBytes = bos.toByteArray();

礼貌: http//www.programcreek.com/downloads/convert-image-to-byte.txt似乎工作正常。 如果你们中的任何人发现这种方法有任何问题,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM