Я пытаюсь преобразовать захваченное изображение в блоб для некоторых нужд. В моем коде нет ошибок, но иногда это не работает.
1-я часть моего кода: захват, вызов функции преобразования и использование blob
let cameraOptions: CameraOptions = {
quality: 100,
//saveToPhotoAlbum: true,
correctOrientation: true,
allowEdit: true,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
}
this.camera.getPicture(cameraOptions).then(imageData => {
//let base64Image = 'data:image/jpeg;base64,' + imageData;
this.showLoading();
this.makeFileIntoBlob(imageData).then(blob=>{
this.hideLoading();
//some other codes
});
});
2-я часть моего кода: функция преобразователя (не всегда работает).
makeFileIntoBlob(imagePath):Promise<any> {
return new Promise((response)=>{
let fileName = "";
this.file.resolveLocalFilesystemUrl(imagePath).then(fileEntry => {
let { name, nativeURL } = fileEntry;
// get the path..
let path = nativeURL.substring(0, nativeURL.lastIndexOf("/"));
fileName = name;
// we are provided the name, so now read the file into a buffer
return this.file.readAsArrayBuffer(path, name);
// the stuck point. nothing return for somtimes
}).then(buffer => {
// get the buffer and make a blob to be saved
let imgBlob = new Blob([buffer], {
type: "image/jpeg"
});
// pass back blob and the name of the file for saving
// into fire base
response(imgBlob);
}).catch(e => {
// error
});
});
}
Я проверил другие функции, чтобы решить мою проблему, но ничего не получалось. работает только эта функция, но не всегда.