Nativescript-imagecropper возвращает пустой объект

Мне нужно обрезать изображение. Если я просто сохраняю изображение на сервер, все в порядке, но если я использую imagecropper, у меня нет источника изображения. ImageCropper возвращает args.image = {android: {}}. Я использую плагин nativescript-imagecropper.

Вот мой метод обрезки:

 public onTakePicture(): void {
            const options = { lockSquare: true };
            const androidOptions = <OptionsAndroid>{
                isFreeStyleCropEnabled: true,
                statusBarColor: 'black',
                setAspectRatioOptions: {
                    defaultIndex: 0,
                    aspectRatios: [
                        {
                            aspectRatioTitle: '1:1',
                            aspectRatioX: 1,
                            aspectRatioY: 1
                        },
                        {
                            aspectRatioTitle: '16:9',
                            aspectRatioX: 16,
                            aspectRatioY: 9
                        },
                        {
                            aspectRatioTitle: '18:9',
                            aspectRatioX: 18,
                            aspectRatioY: 9
                        }
                    ]
                }
            };
            requestPermissions().then(() => {
                takePicture({ width: 300, height: 300, keepAspectRatio: true }).then((image) => {
                    ImageSource.fromAsset(image).then((source) => {
                        setTimeout(
                            () => {
                                this.imageCropper
                                    .show(source, options, androidOptions)
                                    .then((args) => {
                                        if (args.image !== null) {
                                            this.imageUrl = args.image;
                                        }
                                    })
                                    .catch(function (e) {
                                        console.dir(e);
                                    });
                            },
                            isAndroid ? 0 : 1000
                        );
                    });
                });
            });
        }

person Titovskyi    schedule 14.06.2020    source источник


Ответы (2)


Просто попробуйте зарегистрировать это, используя: console.log('images is '+args.image.android) вы должны получить что-то вроде этого: images is android.graphics.Bitmap@34ea206

person hamza    schedule 09.09.2020

args.image не пуст, хотя кажется, не знаю почему. Вы можете попробовать это

                  import * as fsModule from "tns-core-modules/file-system";



                        let folder = fsModule.knownFolders.documents();
                        let filename =
                          "image-" + new Date().getTime() + ".jpg";
                        let path = fsModule.path.join(
                          folder.path,
                          filename
                        );
                        args.image.saveToFile(path, "jpeg");
                        args.image.filename = filename;
                        args.image.path = path;

Теперь вы можете получить доступ к этим свойствам args.image;

person kan101    schedule 23.09.2020