减小图像大小后如何将图像上传到firebase反应本机

Posted

技术标签:

【中文标题】减小图像大小后如何将图像上传到firebase反应本机【英文标题】:How to upload the image to firebase after reducing Image size react native 【发布时间】:2018-05-28 17:27:10 【问题描述】:

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

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

我正在使用 RNFetchBlob 将图像上传到 Firebase。实际上我想使用数据或不使用 origURL 的 uri 上传图像,因为我需要在上传之前减小图像大小。目前无法使用 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);

        )
    );

【问题讨论】:

【参考方案1】:

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

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

希望能解决问题。

【讨论】:

我使用了 react-native-image-picker 库,并且已经使用了 maxWidth 和 maxHeight 道具。这就是为什么我得到像 height: 33, origURL: "assets-library://asset/ 这样的响应asset.JPG?id=9F983DBA-EC35-42B8-8773‌​-B597CF782EDD&ext=JP‌​G",经度:-17.54892833333333,文件名:"IMG_0003.JPG",uri:"file:///Users/mac/Library/Developer /CoreSimulator/…temfiles‌​/ADC7B1EA-93A0-4A25-‌​B7CA-342BE3EF58BE.jp‌​g", … 只有我可以使用原始Url上传图像,无法使用RNFetchBlob中的压缩url上传图像,这是我的问题。请帮助我【参考方案2】:

我用过

react-native-image-crop-picker 反应原生图像选择器

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

**问题是**当需要上传 2 张不同尺寸的图片时,firebase 上传出错了。并给了我这个

目前只能从其他 Blob 创建 Blob

我之前使用过 blob,对上传 2 张不同的图片有相同的反应

除了上传相同大小然后使用 firebase 函数按名称调整图像大小之外,任何人都知道我还能做什么?

【讨论】:

以上是关于减小图像大小后如何将图像上传到firebase反应本机的主要内容,如果未能解决你的问题,请参考以下文章

在上传到Google Cloud存储之前调整图像大小并进行压缩

从解析仪表板上传时如何减小图像大小

反应原生无法将图像上传到firebase

如何在将图像上传到 Firebase 之前调整其大小?

如何在php中减小图像大小?

如何在上传到服务器之前减小图像文件大小