Я новичок в Java, и я изо всех сил пытаюсь понять, как я могу изменить размер изображения, прежде чем загружать его в Firebase.
Я прочитал и перепробовал много предложений из стека, но у меня ничего не получилось.
Мне нужно, чтобы изображение составляло всего несколько сотен килобайт.Изображение будет использоваться только для изображения профиля рядом с именем (40dp * 40dp).Так что качество не должно быть таким хорошим.Так что я не ищу какой-нибудь необычной компрессии, просто простой способ уменьшить изображение.Например, чтобы уменьшить ширину и высоту, скажем, 80dp * (соотношение сторон).
Я получаю изображение с телефона пользователя следующим образом:
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
imageURI = data.getData();
Picasso.with(this).load(imageURI).fit().centerCrop().into(imgView);
}
}
И загружаю его вбаза данных:
private void uploadFile() {
if (imageURI != null && getUserId != null) {
final StorageReference ref = mStorage.child(getUserId);
UploadTask uploadTask = ref.putFile(imageURI);
}
Я попробовал расширение, подобное этому, но оно не помогло
private void uploadFile() {
if (imageURI != null && getUserId != null) {
final StorageReference ref = mStorage.child(getUserId);
Uri test = new Compressor() {
public Uri compressToFile(Uri imageURI) {
return imageURI;
}
@Override
public String getMessageEncoding() {
return null;
}
@Override
public OutputStream compress(OutputStream os) throws IOException {
return null;
}
}.compressToFile(imageURI);
UploadTask uploadTask = ref.putFile(test);
}
Все ответы, которые я нашел, не имели изображения как Uri, поэтому яЯ немного запутался.Мне, вероятно, понадобится изображение в качестве Uri для FireBase.Может кто-нибудь показать мне пошаговое руководство о том, как это сделать.Цени всю помощь!