javascript - 如何将图像URI转换为字节Expo

标签 javascript reactjs react-native expo

我正在使用expo-image-picker上传图像。但问题是我想通过Byte形式通过WebAPI将图像发送到服务器。那么如何将图像URI转换为Byte?如果有人有经验,请与我们分享。

 componentDidMount() {
        this.getPermissionAsync();
    }
    getPermissionAsync = async () => {
        if (Constants.platform.ios) {
            const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
            if (status !== 'granted') {
                alert('Sorry, we need camera roll permissions to make this work!');
            }
        }
    };
    _pickImage = async () => {
        try {
            let result = await ImagePicker.launchImageLibraryAsync({
                allowsEditing: true,
                aspect: [4, 3],
            });
            console.log(result);

            if (!result.cancelled) {
                this.setState({ image: result.uri });
            }
        } catch (e) {
            console.log(e);
        }
    };
render() {
        return (
            <View>
                <Card>
                    <CardItem>
                        <Body>
                            <Button block primary onPress={() => this._pickImage()}>
                                <Text>Add Activity</Text>
                            </Button>
                            {this.state.image && <Image source={{ uri: this.state.image }} style={{ width: 200, height: 200 }} /> }
                        </Body>
                    </CardItem>
                </Card>
            </View>
        );
    }

Expo Snack

最佳答案

您可以执行以下操作:

import { Buffer } from "buffer";

_pickImage = async () => {
  try {
    let result = await ImagePicker.launchImageLibraryAsync({
      base64: true,
      allowsEditing: true,
      aspect: [4, 3],
    });

    if (!result.cancelled) {
      let imageByte = new Buffer(result.base64, "base64");

      this.setState({ image: result.uri });
    }
  } catch (e) {
      console.log(e);
  }
};

注意:您将需要buffer软件包。

关于javascript - 如何将图像URI转换为字节Expo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59989963/

相关文章:

javascript - 有没有办法停止多次调用一个函数?

javascript - 如何在 Backbone 中使用 Twitter rest api?

javascript - 我正在使用 php includes 来构建一个多页面网站。使用 jquery,我如何将类 "active"添加到每个网页以便突出显示

javascript - React-Select Creatable hide only create new.. 消息

javascript - 无法让 Plotly.js 图形在 react-grid-layout 中调整大小

javascript - 不显示特定通知 React Native

reactjs - 即使我们只需要渲染一个组件,所有组件都会被渲染,在react-redux中

javascript - React原生响应式标题高度

javascript - 没有flux的同构react.js

python - 使用二维码验证产品