问:Ionic3 使用 cordova-base64-to-image 插件将 base64Image 保存为图像

Q: Ionic3 saving base64Image as image using cordova-base64-to-image plugin

我正在使用 cordova-plugin-camera-preview 拍照,并使用 cordova-base64-to-gallery 将 base64 字符串保存为图片。

问题是它没有将我的 base64Image 保存为图像。

我现在在做什么:拍完照片我这样称呼:

this.base64ToGallery.base64ToGallery(this.base64Image).then(
    res => this.toast.show('P -> Saved to gallery: ' + res, '5000', 'center').subscribe(),
    err => this.toast.show('P -> Error saving to gallery: ' + err , '7000', 'center').subscribe()
  );

其中 this.base64Image = 'data:image/png;base64,' + imageData; 导致错误为:Error while saving image

如果我将 this.base64Image 更改为 this.base64Image = imageData; 我收到错误消息:data.replace is not a function
data.replace 是来自 cordova-base64-to-gallery 插件的 base64ToGallery.js 的一部分。

我可以使用以下方法正确显示图片作为预览:

<img class="image-container" src="{{base64Image}}" />

非常感谢任何帮助

为了解决这个问题,我需要添加权限以写入具有保存图像代码的页面内的存储空间。 在我的例子中,我将下面的代码放在构造函数中:

this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.WRITE_EXTERNAL_STORAGE).then(
  result => console.log("Permissions granted", result.hasPermissions),
  error => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.WRITE_EXTERNAL_STORAGE)
);
this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.WRITE_EXTERNAL_STORAGE]);

我正在使用 cordova-plugin-camera-preview 拍照,使用 cordova-base64-to-gallery 将 base64 字符串保存为图片。

问题是它没有将我的 base64Image 保存为图像。

我在做什么: this.picture = 'data:image/jpeg;base64,' + imageData;

替换为: this.picture = 'data:image/png;base64,' + imageData;