如何在减少图像大小反应原生后将图像上传到firebase

问题描述 投票:1回答:2

我正在使用图像选择器从手机中拾取图像。图像选择器提供响应

{height:33,origURL:“assets-library://asset/asset.JPG?id = 9F983DBA-EC35-42B8-8773 -B597CF782EDD&ext = JP G”,经度:-17.54892833333333,fileName:“IMG_0003.JPG”,uri :“file:/// Users / mac / Library / Developer / CoreSimulator / ... temfiles / ADC7B1EA-93A0-4A25-B7CA-342BE3EF58BE.jp g”,...}

我正在使用RNFetchBlob将图像上传到firebase。实际上我想使用数据或uri不使用origURL上传图像,因为我需要在上传之前缩小图像大小。目前使用uri无法上传

 let rnfbURI = RNFetchBlob.wrap(image.uri)
Blob
    .build(rnfbURI, { type : 'image/png;'})
    .then((blob) => {
      // upload image using Firebase SDK
      firebase.storage()
        .ref()
        .child('images/')
        .put(blob, { contentType : 'image/jpg' })
        .then((snapshot) => {

      }).catch((error) => {
          console.log(error);
              Alert.alert(error);

        })
    });
android ios react-native blob firebase-storage
2个回答
0
投票

你在你的项目中使用https://github.com/react-community/react-native-image-picker吗?您可以尝试使用maxWidth,maxHeight道具来减少拾取图像后的图像大小。

要么

你可以使用https://github.com/ivpusic/react-native-image-crop-picker来挑选图片。并使用compressImageMaxWidth和compressImageMaxHeight道具来减小图像大小。

我希望它能解决问题。


0
投票

我用了

react-native-image-crop-picker react-native-image-picker

并确实减少了图像的大小,并使用base64 => ...putString(Image64, 'base64');...上传到firebase

**问题是**当需要上传2个不同大小的图像时,firebase上传出错了。并且给了我这个

目前只能从其他Blob创建一个Blob

我以前使用blob并对上传2个不同的图像有相同的响应

除了上传相同的大小然后使用firebase函数按名称调整图像大小,我还能知道我该怎么办?

© www.soinside.com 2019 - 2024. All rights reserved.