Экспо-камера takePictureAsync ImageManipulator - PullRequest
0 голосов
/ 09 мая 2018

У меня есть такой фрагмент кода

takePicture = async function() {
        if (this.camera) {
            this.camera
                .takePictureAsync()
                .then(data => {
                    FileSystem.moveAsync({
                        from: data.uri,
                        to: `${FileSystem.documentDirectory}photos/Photo_${
                            this.state.photoId
                        }.jpg`
                    }).then(() => {
                        this.setState({
                            photoId: this.state.photoId + 1
                        });
                        Vibration.vibrate();
                    });
                });
        }
    };

Теперь моя проблема в том, что я не знаю, как вставить ImageManipulator в эту функцию.Моя цель после того, как takePictureAsync (), размер фотографии будет изменен до 108x192, затем эта фотография будет перемещена в documentDirectory.Большое спасибо

1 Ответ

0 голосов
/ 10 мая 2018

Я нашел решение, вот код

takePicture = async function() {
        if (this.camera) {
            let photo = await this.camera.takePictureAsync();
            let resizedPhoto = await ImageManipulator.manipulate(
                photo.uri,
                [{ resize: { width: 108, height: 192 } }],
                { compress: 0, format: "jpg", base64: false }
            );
            FileSystem.moveAsync({
                from: resizedPhoto.uri,
                to: `${FileSystem.documentDirectory}photos/Photo_${
                    this.state.photoId
                }.jpg`
            });
            this.setState({ photoId: this.state.photoId + 1 });
            Vibration.vibrate();            
        }
    };
...