我已经制作了一个用于图像和视频共享的社交应用程序.但是,它花费了太多时间来加载图像.我正在使用滑动库.请告诉我如何减少从图库中拾取的图像的大小而不会发生相当大的变化在图像质量(如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() { @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
您所选图像的对象.:)