将图像转换为base64并发送到React Native中的graphQl



如何在将从imagepicker中选择的图像发送到graphql之前将其转换为base64?

我将useState变量设置为设置

const [image, setImage] = useState(null);

我可以在这里做些什么来转换?

const choosePhotoFromLibrary = async() => {
const permissionResult = await ImagePicker.requestMediaLibraryPermissionsAsync();
if (permissionResult.granted === false) {
alert("Permission to access camera roll is required!");
return;
}
const pickerResult = await ImagePicker.launchImageLibraryAsync();
if(!pickerResult.cancelled) {
setImage(pickerResuls.uri);
}

然后我从中获取图像,并将其设置为useState可变

<View style={styles.picContainer}>
<AddPicButton
onPress= {choosePhotoFromLibrary}
image= {image}
/>
<Text style={styles.bottomText}>ADD A PICTURE</Text>
</View>
ImageEditor.cropImage(imageUrl, imageSize, (imageURI) => {
ImageStore.getBase64ForTag(imageURI, (base64Data) => {
// base64Data contains the base64string of the image
}, (reason) => console.error(reason));
}, (reason) => console.error(reason));

事实证明ImagePicker有自己的base64转换

const pickImage = async () => {
// No permissions request is necessary for launching the image library
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
aspect: [4, 3],
quality: 0,
base64: true
});
console.log(result);
if (!result.cancelled) {
setImage(result.uri);
}
console.log(result);

};

最新更新