簡體   English   中英

為什么ImageIO.read()SOOO慢?

[英]Why ImageIO.read() SOOO slow?

所以我試圖從流中獲取PNG圖像。

image = ImageIO.read(inputStream);

這段代碼運行了十秒鍾! 我以為問題出在慢速InputStream中,所以我嘗試首先將其加載到緩沖區中。

byte[] bytes = inputStreamToBytes(inputStream);
image = ImageIO.read(new ByteArrayInputStream(bytes));

你猜怎么着! 將它從InputStream加載到緩沖區大約需要100毫秒,但要從字節數組中讀取它要花很多時間! 十(十)秒的閱讀時間! 從RAM!

我正在Raspberry PI上執行此操作。 是的,我知道這是玩具,而不是真正的計算機。 因此,我嘗試在MacBook Air上進行操作。 真的,兩秒好於十秒。 但是對於某些800x600 PNG來說仍然很多。 那么為什么呢? 怎么辦?

您可能需要安裝Java Native IO庫,默認情況下未安裝它們。

http://www.oracle.com/technetwork/java/install-jai-imageio-1-0-01-139659.html

如果未安裝此lib,則對映像的所有操作都將以非本機方式在Java中執行。

暫無
暫無

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

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