react-native-image-picker的使用简单总结

一、依赖安装

依赖 react-native-camera

yarn add react-native-image-picker
react-native link react-native-image-picker

二、调用相机

import { launchCamera } from 'react-native-image-picker';
launchCamera({
    mediaType: 'photo',
    maxWidth: 1000,// 设置选择照片的大小,设置小的话会相应的进行压缩
    maxHeight: 1000,
    quality: 0.8,
    // videoQuality: 'low',
    // includeBase64: true
}, res=>{
    if(res.didCancel){
        return false;
    }
    // 对获取的图片进行处理
})

三、调用相册

import { launchImageLibrary } from 'react-native-image-picker';
launchImageLibrary({
    mediaType: 'photo',
    maxWidth: 1000,// 设置选择照片的大小,设置小的话会相应的进行压缩
    maxHeight: 1000,
    quality: 0.8,
    // videoQuality: 'low',
    // includeBase64: true
}, res=>{
    if(res.didCancel){
        return false;
    }
    // 对获取的图片进行处理
})

四、上传

上传的时候需要关掉debugger模式,不然会失败

// 上传图片api调用
async function uploadImage(params) {
    const formData = new FormData();
    formData.append('file', {
        uri: params.uri,
        type: params.type,
        name: params.fileName,
    });
    return await fetch(`apiurl`, {
        method: 'post',
        body: formData,
        headers: {
            'Content-Type': 'multipart/form-data'
        },
    }).then((response) => {
        return response.json()
    })
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
React Native 中的 ImagePicker 组件获取到的图片是以 URI 的形式返回的,而不是公共路径。如果您需要将图片保存到公共路径中,可以使用 `react-native-fs` 这个第三方库,用于读取和写入文件系统。 以下是一个简单的示例,演示如何将 ImagePicker 返回的图片保存到公共路径中: ```javascript import React, { useState } from 'react'; import { Button, Image, View } from 'react-native'; import ImagePicker from 'react-native-image-picker'; import RNFS from 'react-native-fs'; const App = () => { const [image, setImage] = useState(null); const handleChoosePhoto = () => { const options = { mediaType: 'photo', quality: 1, }; ImagePicker.launchImageLibrary(options, response => { if (response.uri) { const folderPath = RNFS.DownloadDirectoryPath; const fileName = 'myImage.jpg'; const filePath = `${folderPath}/${fileName}`; RNFS.copyFile(response.uri, filePath).then(() => { setImage(filePath); }); } }); }; return ( <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}> {image && ( <Image source={{ uri: `file://${image}` }} style={{ width: 200, height: 200 }} /> )} <Button title="Choose Photo" onPress={handleChoosePhoto} /> </View> ); }; export default App; ``` 在上面的示例中,我们使用 `react-native-fs` 中的 `copyFile` 方法将 ImagePicker 返回的图片复制到公共路径中,并将公共路径作为 state 更新。最后,我们使用 `file://` 协议将图片加载到 Image 组件中。 希望这能帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值