减小图像大小后如何将图像上传到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=JPG”,经度:-17.54892833333333,文件名:“IMG_0003 .JPG", uri: "file:///Users/mac/Library/Developer/CoreSimulator/...temfiles/ADC7B1EA-93A0-4A25-B7CA-342BE3EF58BE.jpg", ...
我正在使用 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=JPG",经度:-17.54892833333333,文件名:"IMG_0003.JPG",uri:"file:///Users/mac/Library/Developer /CoreSimulator/…temfiles/ADC7B1EA-93A0-4A25-B7CA-342BE3EF58BE.jpg", … 只有我可以使用原始Url上传图像,无法使用RNFetchBlob中的压缩url上传图像,这是我的问题。请帮助我【参考方案2】:我用过
react-native-image-crop-picker 反应原生图像选择器
并且确实减小了图像的大小并使用 base64 上传到了 firebase => ...putString(Image64, 'base64');...
**问题是**当需要上传 2 张不同尺寸的图片时,firebase 上传出错了。并给了我这个
目前只能从其他 Blob 创建 Blob
我之前使用过 blob,对上传 2 张不同的图片有相同的反应
除了上传相同大小然后使用 firebase 函数按名称调整图像大小之外,任何人都知道我还能做什么?
【讨论】:
以上是关于减小图像大小后如何将图像上传到firebase反应本机的主要内容,如果未能解决你的问题,请参考以下文章