是否BitmapFactory.decodeStream(InputStream)
已经阅读了大量的内容,还是应该确保将其传递BufferedInputStream
给原始阅读器而不是原始阅读器InputStream
?
我要问的是,是否BitmapFactory
尚未在较大的块中进行IO,那么在传递输入流之前,应该明确地将缓冲应用于输入流。但是,如果它已经在大块中工作,则应用缓冲实质上只是添加了不必要的一组memcpy()
操作。
如果那些编写采用APIInputStream
或OutputStream
参数的API在Javadoc中清楚地了解这些事情,那将是非常不错的。
目前,我正在应用缓冲,除非InputStream
是的一个实例AssetManager.AssetInputStream
,因为我注意到在的情况下对此情况进行了特殊处理decodeStream()
。
如果您看一下实现,则可能有两种解码Stream调用的方法。
nativeDecodeAsset(),当我浏览类时似乎没有显示实现
encodeStreamInternal(),根据()16 * 1024
的大小判断一次读取字节DECODE_BUFFER_SIZE
(id发布了代码,但是格式似乎现在被破坏了)
所以我认为使用BitmapFactory.decodeStream()
是一个安全的选择
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句