我试图找到一种优雅的方法来将OutputStream
方法产生的bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream)
转换为Okio的Source
/ InputStream
(需要进一步处理数据-编码),同时保持数据缓冲区。
我尝试使用
val pipe = Pipe(100)
bitmap.compress(Bitmap.CompressFormat.PNG, 100, Okio.buffer(pipe.sink()).outputStream())
saveFile(File("filename"), pipe.source())
但这卡在
bitmap.compress
上。 最佳答案
使用缓冲区代替http://square.github.io/okio/1.x/okio/okio/Buffer.html
val buffer = Buffer()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, buffer.outputStream())
saveFile(File("filename"), buffer)
管道将采用并发编写器以避免潜在的阻塞
http://square.github.io/okio/1.x/okio/okio/Pipe.html