簡體   English   中英

Java 讀取圖像 - java.lang.OutOfMemoryError

[英]Java reading an image - java.lang.OutOfMemoryError

我正在嘗試使用以下代碼讀取一個 10MB 的 Jpeg 圖像,但我收到“線程“主”java.lang.OutOfMemoryError: Java 堆空間中的異常”。 我想知道 10MB 的圖像是否太大而無法讀取,如果是,我是否應該增加堆空間。

增加堆空間應該是最后的選擇,所以我想知道是否有其他方法可以實現這一點。 我的代碼附在下面;

BufferedImage image;
    try {

         image = ImageIO.read(new File("C:/Users/Administrator/Desktop/aa.jpg"));

            printDetails(image);

        } catch (IOException e) {

        }

幫助表示贊賞。

請注意,可以輕松地將 10MB JPEG 解壓縮為更多兆字節的未壓縮圖像數據。

假設您使用標准的 24 位色彩空間(每個 8 位用於 RGB)並且圖像的尺寸為 10000 x 10000 像素(考慮到 10MB 的輸入大小,這並不太現實),那么您需要超過 286MB存儲原始的、未壓縮的圖像數據(假設開銷為零)。

這明顯大於 Oracle 客戶端 VM 的默認最大堆大小,因此您可能需要使用-Xmx參數增加可用堆 memory 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM