簡體   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