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

时间:2018-08-07 08:17:56

标签: cordova ionic-framework base64 ionic3 cordova-plugins

我正在使用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}}" />

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

要解决此问题,我需要添加权限以写入具有代码以保存图像的页面中的存储。 就我而言,我将以下代码放在构造函数中:

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]);

答案 1 :(得分:0)

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

问题是它不会将我的base64Image保存为图像。

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

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