gpt4 book ai didi

javascript - 即使质量为 100,Cordova 相机 getPicture 也是无损压缩

转载 作者:行者123 更新时间:2023-11-29 23:46:37 25 4
gpt4 key购买 nike

你好 friend 在我的项目中,我可以通过相机或画廊捕捉图像,图像文件的大小根据相机或用户选择的图像的质量而变化到 5-6 MB。然后我必须上传它在服务器上。

要求是,在将文件上传到远程服务器之前,我想对图像应用无损压缩以将文件大小减小到 2-3MB,这样可以节省用户的互联网成本和我的服务器空间。

不使用resize 图片。我怎样才能做到这一点?。

我让用户上传一张图片。这是我的代码。

$scope.addImage = function (source) {
$rootScope.ionPopup.close();
var src = Camera.PictureSourceType.CAMERA
if (source == 'PHOTOLIBRARY')
src = Camera.PictureSourceType.PHOTOLIBRARY
var options = {
quality: 100,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: src,
allowEdit: false,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 350,
targetHeight: 350,
//popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: true,
correctOrientation: true
};
$cordovaCamera.getPicture(options).then(function (imageData) {
uploadImage(imageData);

}, function (err) {
// error
});
};
var uploadImage = function (imageData) {
$scope.orderImages.push(imageData);
$scope.orderImagesList.push({ImageString: imageData});
};

imageData 是 base64 编码的图像。

如何压缩该 base64 编码图像?

谁能帮帮我!

最佳答案

targetHeighttargetWidth 选项应该改变生成的文件大小。我最近使用:

quality: 90, 
targetWidth: 900,
targetHeight: 900,

将一个 10MB 的巨大图像文件缩小到大约 200KB。请记住:

Photos selected from the device's gallery are not downscaled to a lower quality, even if a quality parameter is specified.

来源:https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/index.html

关于javascript - 即使质量为 100,Cordova 相机 getPicture 也是无损压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43776281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com