我正在尝试将图像上传到Firebase存储,但是大图像使我的应用程序滞后/缓慢,因此我想按比例缩小图像或有其他替代方法
答案 0 :(得分:1)
这是您可以用来执行的功能。您需要将图像的bitmap
传递给函数:
private void doUpload(Bitmap bitmap) {
//Change this to your picture name.
String s = "MyPicture.jpg";
StorageReference storageReference2 = FirebaseStorage.getInstance().getReference(s);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//Compress the original bitmap down into a JPEG.
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data2 = baos.toByteArray();
//Get an array of the bytes and upload it to Firebase Storage.
UploadTask uploadTask = storageReference2.putBytes(data2);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
makeToast("Exception " + exception.getMessage());
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
makeToast("Picture uploaded.");
}
});
}
这应将图片上传到Firebase存储。它将图像压缩为JPEG。您可以通过更改上面的字符串s
的值来更改图片的名称。希望这会有所帮助。