当前位置: 首页 > Web前端 > vue.js

uniapp框架如何实现类微信相册插件-图片视频编辑+压缩

时间:2023-03-31 21:12:32 vue.js

在上一篇文章()中,我们基于uniapp框架实现了仿微信相册中的相机+视频功能。今天继续在uni-app中实现:1:图片编辑2:视频编辑3:文件压缩效果预览:技术实现开发环境:HbuilderX+nodejs技术框架:uniapp+vue2.x测试环境:App端(Android+IOS),代码:开源效果预览业务分析这个主要是继续扩充上次写的仿微信相册(https://segmentfault.com/a/11...)。对于插件来说,当用户点击图片不在选中区域时,插件会调用回调事件反馈点击编辑事件,如下://albumeventcallbackAlbumCallbackHanlder(res){let{type,data}=resswitch(type){//触发点击编辑图片Videocase'onClickEditImage'://这里的数据是触发的文件路径console.log(res);休息;默认值:console.log(res)中断;}}当我们触发edit事件后,就可以开始调用api执行了应该是编辑过的图片或者编辑过的视频,但是我们提供的路径必须是原生可识别的路径,以...开头。如果是特殊路径,可以使用plus自带的方法转换路径,如下:-编辑图像');editimagevideo//path原始文件路径//distPath编辑后的文件保存路径sdkwx.edit(path,distPath=>{console.log(distPath)})这里其实很简单,路径传入后,文件编辑会弹出界面,但不同的是,如果编辑完成后需要同步更新到相册,需要调用如下方法:UpdateAlbumItem//编辑完成后调用,然后默认更新最后编辑的文件叫做albumView.changeListEditImage(path)image这里的视频压缩一般是获取原图和原视频。随着移动设备性能的提升,摄像头的分辨率也越来越高,拍摄的视频画面经常会超过1080p的范围,这对服务器来说压力很大。这里我们可以使用插件自带的压缩模块进行压缩图片和视频有3种压缩方式。引入压缩模块varsdkwx=uni.requireNativePlugin('Zhimi-compression');压缩图片//0.5压缩质量比//path传入文件路径,以//开头//distPath返回文件路径,以/开头,前端显示添加文件://prefixsdkwx.compressPicQuality(0.5,path,distPath=>{console.log(distPath)})zoomimage//750targetheight//path输入文件路径,以//开头//distPath返回文件路径,以/开头,前端显示需要添加file://前缀sdkwx.compressPicSize(750,path,distPath=>{console.log(distPath)})压缩视频//path传入文件路径,以//10开头,只有当体积超过10M的视频,根据插件内置算法自动压缩,单位M//distPath返回文件路径,以/开头,前台显示前缀为file://sdkwx.compressVideo(path,10,distPath=>{console.log(distPath)})这里要注意一点,就是文件路径的问题。传给插件的路径需要以/开头,因为原版不识别uniapp的_doc和_www开头的特殊路径。如果是特殊路径,最好先Convert一遍,用plus的方法完美转换成原来的路径。OK,到这里uniapp实现仿微信相册的部分,分享就完成了。您可以根据自己的爱好对其进行自定义。啊,界面显示形式不是唯一的。这部分代码使用的原生插件可以参考uniapp插件市场的插件智能相册-自定义原生相册+图片视频过滤