我使用@capacitor/camera库拍摄了一张照片,使用了以下代码:
let capturedPhoto:any = await Camera
.getPhoto({
resultType: CameraResultType.Uri,
source: CameraSource.Camera,
quality: 30,
height: 150,
allowEditing: false,
direction: CameraDirection.Front
})
.catch(err => {
});
当我在Android或iOS中使用此代码的应用程序时,图片文件太大(接近4 MB)。这个文件需要存储在Firebase存储中,我需要保存空间,因为在大量用户的成本可以由一个问题。
所以一个不知道我该怎么做来调整图片大小或压缩图像?我需要一些算法在typescript实现没有画布或HTML的使用。这可能吗
我的想法是使用“capturedPhoto”并以某种方式处理它,但我可以找到的所有选项都使用画布或HTML元素,并且不起作用,或者我不知道如何实现。
capturePhoto有这种格式,当一个尝试把jpg,“选项”为Camera.getPhoto,不要让我。
{
"webPath": "blob:http://localhost:8100/df29b43e-da65-4345-8bbb-704a8745d483",
"format": "png",
"saved": false
}
1条答案
按热度按时间brqmpdu11#
最后,我终于可以解决我的问题了。
我可以找到并合并不同平台和语言的各种解决方案,以生成我自己的调整图片大小的函数(使用画布,是的,但不与HTML页面交互)。
第一个测试是去非常好,用电脑相机拍摄的照片有它285KB,结果结束了2.75KB(在一个极端的大小减少),在加上转换的png到jpg.
我将介绍next函数(resizeImage),但它与我在项目中需要使用的所有其他函数集成在一个服务中。
现在,我的下一步是在手机(Android或iOS)中测试调整大小功能,看看照片最终大小的结果。