Cordova相机getPicture即使质量为100,仍会无损压缩

3
你好,朋友们。在我的项目中,我能够通过相机或者图库捕获图像,图像文件的大小根据拍摄质量或用户选择的图片而变化,一般为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 编码的图片?

有人可以帮我吗!

1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接