如何在没有质量降低和目标宽度和高度的情况下调整Ionic 3中的图像大小?

时间:2017-09-11 07:57:13

标签: ionic-framework camera resize ionic3

我想减少相机API拍摄的图像尺寸,但质量降低并不好。最好的方法是降低分辨率,但我不想对所有图像使用目标宽度和高度。

例如,我希望图像宽度为1280,图像高度按比例自动更改,但在API中我应该使用精确的宽度和高度。

如何通过图像比率来改变高度动态???

目前,我使用此代码:

 this.camera.getPicture({
  quality: 60,
  destinationType: this.camera.DestinationType.FILE_URI,
  sourceType: sourceType,
  mediaType: this.camera.MediaType.PICTURE,
  targetWidth: 1280,
  targetHeight: 1280,
  encodingType: this.camera.EncodingType.JPEG,
  saveToPhotoAlbum: (source === PictureSource.CAMERA),
  allowEdit: true
})

2 个答案:

答案 0 :(得分:3)

使用Cordova插件中的这些选项:

targetWidth :用于缩放图像的宽度(以像素为单位)。必须与 targetHeight 一起使用。宽高比保持不变。 (数目)

targetHeight :以像素为单位的高度以缩放图像。必须与 targetWidth 一起使用。宽高比保持不变。 (数目)

喜欢这个

var options = {
      quality: 100,
      sourceType: sourceType,
      saveToPhotoAlbum: false,
      correctOrientation: true,
      destinationType: this.camera.DestinationType.DATA_URL,
      targetWidth: 400,
      targetHeight: 400,
    };

// Get the data of an image
this.camera.getPicture(options).then((imageData) => {
//use the imageData as required.
}, (err) => {

}).catch((error) => {

  })

答案 1 :(得分:2)

我在相机中使用图像缩放器原生API,它可以工作。当为宽度和高度赋值时,它会将较大的值转换为目标值,并按原始比例调整另一个值。 这是我的代码:

 this.camera.getPicture({
  destinationType: this.camera.DestinationType.FILE_URI,
  sourceType: sourceType,
  mediaType: this.camera.MediaType.PICTURE,
  encodingType: this.camera.EncodingType.JPEG,
  saveToPhotoAlbum: (source === PictureSource.CAMERA),
  allowEdit: true
})
  .then(imageUri => {
    this.imageResizer.resize({
      uri: imageUri,
      quality: 60,
      width: 1280,
      height: 1280
    }).then(uri => handler(uri))
  })
  .catch(error => console.warn(error))

}