我之前看到过这个问题,但没有一个解决方案真正适合我的情况。
除了节省一些空间之外,我还想节省从 Firebase 存储上传/下载内容的时间。由于 firebase 使用图像 uri,我想不出实现此目的的正确方法。
解决方案可能是创建一个“副本”到缓存或一些临时文件以调整大小、裁剪等,然后将该副本上传到存储。但是我不知道这是否是一个好方法,而且我真的不知道该怎么做。
你会建议一些方法来做到这一点吗?我真的很欣赏例子。
您可以使用一些定制的libraries
用于压缩图像和视频等媒体文件。例如:压缩机是一个很好的图像压缩库:https://github.com/zetbaitsu/Compressor https://github.com/zetbaitsu/Compressor
压缩图像并上传Firebase Storage
你可以简单地做这样的事情:
try {
Bitmap bitmap = new Compressor(this)
.setMaxHeight(200) //Set height and width
.setMaxWidth(200)
.setQuality(100) // Set Quality
.compressToBitmap(file);
} catch (IOException e) {
e.printStackTrace();
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
final byte[] bytes = baos.toByteArray();
然后在调用和设置时UploadTask
:
UploadTask uploadTask = StorageReference.putBytes(bytes);
当然还有一些其他的libraries
like:
硅压缩机
https://github.com/Tourenathan-G5organization/SiliCompressor https://github.com/Tourenathan-G5organisation/SiliCompressor
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)