我试图找到一种优雅的方法,在维护数据缓冲区的同时,将bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream)方法生成的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。
发布于 2019-01-23 17:30:24
使用缓冲区而不是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
附加的源和水槽。水槽的输出是源的输入。通常,每个线程都由自己的线程访问:生产者线程将数据写入接收器,使用者线程从源读取数据。该类使用缓冲区来分离源和接收器。此缓冲区具有用户指定的最大大小.当一个生产者线程超过了它的使用者时,缓冲区就会填满,并最终写入接收器,直到使用者捕获为止。
https://stackoverflow.com/questions/54332474
复制相似问题