所以我试图从流中获取 PNG 图像。
image = ImageIO.read(inputStream);
这段代码运行了十秒钟!我认为问题出在缓慢的InputStream上,所以我尝试先将它加载到缓冲区中。
byte[] bytes = inputStreamToBytes(inputStream);
image = ImageIO.read(new ByteArrayInputStream(bytes));
你猜怎么着!将其从 InputStream 加载到缓冲区大约需要 100 毫秒,但仅从字节数组读取它就需要大量时间!十(十)秒即可阅读!来自 RAM!
我是在树莓派上做的。是的,我知道这是一个玩具,而不是真正的计算机。所以我尝试在 MacBook Air 上进行此操作。确实,两秒比十秒好。但对于一些 800x600 PNG 来说仍然很多。那么为什么会这样呢?该怎么办?
您可能需要安装 Java Native IO 库,默认情况下不安装它们。
http://www.oracle.com/technetwork/java/install-jai-imageio-1-0-01-139659.html http://www.oracle.com/technetwork/java/install-jai-imageio-1-0-01-139659.html
如果您没有安装此库,则图像上的所有操作都在 java 中执行,而不是在本机中执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)