android – 如何在将图像上传到firebase存储之前减小图像的大小?
作者:互联网
我已经制作了一个用于图像和视频共享的社交应用程序.但是,它花费了太多时间来加载图像.我正在使用滑动库.请告诉我如何减少从图库中拾取的图像的大小而不会发生相当大的变化在图像质量(如Instagram做),然后将其上传到firebase存储.请帮忙!
解决方法:
StorageReference childRef2 = [your firebase storage path]
storageRef.child(UserDetails.username+"profilepic.jpg");
Bitmap bmp = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 25, baos);
byte[] data = baos.toByteArray();
//uploading the image
UploadTask uploadTask2 = childRef2.putBytes(data);
uploadTask2.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(Profilepic.this, "Upload successful", Toast.LENGTH_LONG).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Profilepic.this, "Upload Failed -> " + e, Toast.LENGTH_LONG).show();
}
});`
只需继续并执行上述步骤,它将减少您的图像大小并将其上传到firebase上,它将图像大小减小到1到2 MB
就像我的经验4mb文件变成了304kb.
filepath是和所选图像的File对象.
标签:android,firebase,firebase-storage,android-glide 来源: https://codeday.me/bug/20190715/1465306.html