当前位置:   article > 正文

uniapp图片(头像)裁剪(vue3+ksp-cropper)_uniapp 实现选择头像并裁剪功能

uniapp 实现选择头像并裁剪功能
继上篇文章发布不到一天,有一定的反响,于是准备提笔写下h5的头像裁剪,也是前段时间产品的一个小功能,h5相对于pc的头像裁剪简单很多,不需要去转换一些文件格式,好了,准备开始吧!

使用uniapp自带的上传组件

  1. <view class="header_img mt-32">
  2. <uni-file-picker class="img" limit="1" v-model="avatarList" fileMediatype="image" mode="grid"
  3. @select="upload" />
  4. </view>

将插件安装到项目中,这个下载插件的官方地址https://ext.dcloud.net.cn/plugin?id=6878

我记得应该是需要手机扫码看30秒的广告才可以下载的哈哈哈

参数根据自己的需求可以自己设置,头像裁剪记得用fixed,这个是固定尺寸

下载完了之后就将代码加进项目中

  1. <!-- 图片裁剪 -->
  2. <ksp-cropper mode="fixed" :width="250" :height="250" :maxWidth="1024" :maxHeight="1024" :url="cropperUrl"
  3. @cancel="oncancel" @ok="onok"></ksp-cropper>

数据层,标签里面的  :url如果为空插件就默认不显示,有地址裁剪就会自己出来

const cropperUrl = ref('')

现在开始处理逻辑

当我们使用uniapp自带的上传图片时将cropperUrl进行赋值,头像裁剪就会出来

赋值完成后操作后点击确认onok进行裁剪,将cropperUrl置空,去调用上传的接口得到完整的地址,成功得到完整地址后再去调用修改图片(头像)地址即可。

  1. // 选择图片
  2. const upload = (e) => {
  3. const tempFilePaths = e.tempFilePaths; //e是获取的图片源
  4. cropperUrl.value = tempFilePaths[0]
  5. }
  6. // 确认裁剪
  7. const onok = (res) => {
  8. cropperUrl.value = ""
  9. uni.uploadFile({
  10. url: `/apis/set/upload`,
  11. filePath: res.base64,
  12. //设置请求头
  13. header: {
  14. "token": getToken()
  15. },
  16. name: 'file',
  17. success: res2 => {
  18. let data = JSON.parse(res2.data)
  19. if (data.code == 1) {
  20. // url为上传的地址
  21. saveAvatar({
  22. avatar: data.data.fullurl
  23. }).then(res3 => {
  24. if (res3.code == 1) {
  25. successMessage()
  26. } else {
  27. uni.showToast({
  28. title: res3.msg,
  29. icon: 'none'
  30. })
  31. }
  32. })
  33. }
  34. }
  35. })
  36. };
  37. // 取消裁剪
  38. const oncancel = (res) => {
  39. cropperUrl.value = "";
  40. };

以上就是完整的处理逻辑以及代码

完结,撒花,有任何问题请私信踢我或者评论区留言!!!!!!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/287101
推荐阅读