Ошибка при сохранении изображения в галерее в Ionic? - PullRequest
0 голосов
/ 28 октября 2018

Я использую плагин Base64 To Gallery для хранения моего base64 изображения в галерее.

Это мой код:

 savePhoto() {
    this.screen.URI(100).then(
      res => {
        this.base64ToGallery.base64ToGallery(res.URI, { prefix: '_bilar', mediaScanner: true }).then(
          res => {
            alert('Saved image to gallery ' + res);
            this.base64value = res.URI;
          },
          err => alert('Error saving image to gallery ' + err)
        );
      }
    )
  }

Я получаю ошибку

Невозможно декодировать изображение.

Мне нужно сохранить созданный снимок экрана в моей галерее.Как я могу это сделать?Любая помощь приветствуется.Спасибо!

1 Ответ

0 голосов
/ 29 октября 2018

Попробуйте этот код ниже.Это позволит загрузить и сохранить изображение в папке приложения и отобразить в галерее.

downloadImage(fileName, ext, base64) {
        let storageDirectory: string = "";
        //Select Storage Location
        if (this.platform.is('ios')) {
            storageDirectory = cordova.file.documentsDirectory + '<Your Folder Name>/';
        }
        else if (this.platform.is('android')) {
            storageDirectory = cordova.file.externalDataDirectory + '<Your folder name>/';
        }
        else {
            return false;
        }
        //Request Access
        if (this.platform.is("android")) {
            this.diagnostic.requestRuntimePermission('READ_EXTERNAL_STORAGE').then(() => {
                console.log("Success");
            })
        }
        //Download Image
        var uri = encodeURI('data:' + "image/png" + ';base64,' + base64);
        var fileURL = storageDirectory + "Image.png".replace(/ /g, '%20');
        this.fileTransfer.download(uri, fileURL).then((success) => {
            base64 = 'data:' + "image/png" + ';base64,' + base64;
            const alertSuccess = this.alertCtrl.create({
                title: `Download Succeeded!`,
                subTitle: `Image was successfully downloaded`,
                buttons: ['Ok']
            });
            alertSuccess.present();
        }, error => {
            const alertFailure = this.alertCtrl.create({
                title: `Download Failed!`,
                subTitle: `Image was not successfully downloaded. Error code: ${error.code}`,
                buttons: ['Ok']
            });
            alertFailure.present();
        })
    }
...