Image 创建的图像没有文件类型-压缩需要文件类型-角度2/3

Image 创建的图像没有文件类型-压缩需要文件类型-角度2/3,image,angular,file,ionic-framework,types,Image,Angular,File,Ionic Framework,Types,我正在尝试压缩客户端Angular 2/Ionic 3的图像,当我记录相机创建的文件时,它显示: type:null,它应该说type:'image/jpeg' 我正在使用Ionic camera插件来处理拍照或从照片库中选择一张照片,之后我假设创建的文件没有类型。我试过的每个压缩工具都有这个问题,我已经没有选择了。有没有办法更改文件对象的类型?我使用此方法创建了一个新的Blob,并确保为其指定图像类型: dataURItoBlob(dataURI, callback): Promise<

我正在尝试压缩客户端Angular 2/Ionic 3的图像,当我记录相机创建的文件时,它显示:

type:null,它应该说type:'image/jpeg'


我正在使用Ionic camera插件来处理拍照或从照片库中选择一张照片,之后我假设创建的文件没有类型。我试过的每个压缩工具都有这个问题,我已经没有选择了。有没有办法更改文件对象的类型?

我使用此方法创建了一个新的Blob,并确保为其指定图像类型:

dataURItoBlob(dataURI, callback): Promise<any> {
    return new Promise((resolve, reject) => {
      let byteString = atob(dataURI);
      //console.log(byteString);

      // separate out the mime component
      //let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]

      // write the bytes of the string to an ArrayBuffer
      let ab = new ArrayBuffer(byteString.length);
      let ia = new Uint8Array(ab);
      for (let i = 0; i < byteString.length; i++) {
          ia[i] = byteString.charCodeAt(i);
      }

      // write the ArrayBuffer to a blob, and you're done
      let bb = new Blob([ab], {type: 'image/jpeg'});
      resolve(bb);  

    })
}
var readerZ = new FileReader();

  readerZ.onload = (e) => {
    let data = readerZ.result.split(',')[1];
    //console.log(data);
    self.dataURItoBlob(data, null).then(blob => {

你能添加一些相关的代码片段吗?你在使用哪种压缩工具?我解决了类型问题…但我遇到了一个新问题…我使用的压缩工具都不起作用…我使用过ng2 img max/ng2 img工具…我认为ionic在使用canvas html元素进行压缩这一事实上遇到了问题…我想我读到了ionic 3创建canvas元素是非常困难的一个问题如果你解决了你自己的问题,你可以回答你自己的问题,这样将来有同样问题的用户可以得到帮助!您还可以编辑问题以添加相关信息,如压缩工具。您可以为其创建新问题的任何新问题: