美文网首页
uni-app使用image-cropper进行图片裁剪(个人笔

uni-app使用image-cropper进行图片裁剪(个人笔

作者: kevision | 来源:发表于2022-03-24 17:27 被阅读0次

背景:在由用户上传图片生成自定义海报的时候,会存在图片尺寸太大造成拉伸的情况。所以在选择图片之后,对图片进行裁剪再进行上传。
插件地址:https://github.com/1977474741/image-cropper,详细功能请查看文档。

  1. 下载插件之后,把相关文件放到uniapp项目的wxcomponents目录里面,并在page.json配置好裁剪页的组件引入。例:
{
   "path" : "posterActivity/cropper/index",
   "style" : {
        "navigationBarTitleText" : "",
        "enablePullDownRefresh" : false,
        "usingComponents": {
            "image-cropper": "/wxcomponents/image-cropper/image-cropper"
        }
    }
}
  1. 上传图片页,点击选择图片之后把图片临时地址带到裁剪页。
handleUpload() {
    uni.chooseImage({
        count: 1,
        crop: {
            width: 412
        },
        success:(val)=> {
             uni.navigateTo({
                url: `/pagesActivity/posterActivity/cropper/index?url=${val.tempFilePaths[0]}`
             })
         }
    })
},
  1. 裁剪页,配置插件相关参数,裁剪成功之后把图片地址存到vuex。
<template>
    <view class="cropper_popup">
        <image-cropper ref="image-cropper" :limit_move="true" :disable_rotate="true" :disable_ratio="true" width="190" height="330" max_width="228" max_height="396" :quality="1" :imgSrc="imgSrc"></image-cropper>
        <view class="btns">
            <view @click="handleCancel">取消</view>
            <view @click="handleSure">确认</view>
        </view>
    </view>
</template>
<script>
export default{
    data() {
        return {
            imgSrc: '',
        }
    },
    onLoad(options) {
        this.imgSrc = options.url
    },
    mounted(){},
    methods:{
      handleCancel() {
          uni.navigateBack({ delta: 1 })
      },
      handleSure() {
          // getImg获取裁剪后的图片信息
          this.$refs['image-cropper'].getImg(res => {
              this.$store.commit('SET_POSTERURL', res.url)
              uni.navigateBack({ delta: 1 })
          })
      }
    },
}
</script>
<style lang='scss' scoped>
.cropper_popup {
    width: 100%;
    height: 100vh;
    position: relative;
    .btns {
        width: 100%;
        display: flex;
        justify-content: space-around;
        position: absolute;
        bottom: 80rpx;
        z-index: 999999;
        color: #fff;
    }
}
</style>
  1. 回到上传图片页,从vuex获取裁剪后的临时图片地址,并进行上传即可。
onShow() {
   let posterUrl = this.$store.state.posterUrl
   if(posterUrl) {
        上传操作...
    }
},
onUnload() {
   this.$store.commit('SET_POSTERURL', '')
},

相关文章

  • uni-app使用image-cropper进行图片裁剪(个人笔

    背景:在由用户上传图片生成自定义海报的时候,会存在图片尺寸太大造成拉伸的情况。所以在选择图片之后,对图片进行裁剪再...

  • 使用element-ui + cropper.js自己封装一个图

    本文主要使用了element-ui的图片上传组件获取图片,然后使用cropper.js进行图片裁剪,在裁剪完以后进...

  • ropper.js裁剪图片

    用户选择头像或者图片,需要进行裁剪,使用ropper.js croper.js 图片裁剪 Author:Wuxia...

  • 小程序上传头像前剪切图片

    image-cropper 一款高性能的小程序图片裁剪插件,支持旋转。 1.功能强大。 2.性能超高超流畅,大图毫...

  • 使用系统Intent裁剪图片

    说明 使用Android系统中的Intent来进行简单的图片裁剪,裁剪完成后的数据可以保存为完整图片文件,或者获得...

  • Nginx配置跨域请求

    Nginx配置跨域请求 背景:图片存于服务器,使用Nginx进行转发,前端使用某组件对图片进行裁剪时,请求跨域了,...

  • IOP编程思想实现图片裁剪组件

    前言 本篇文章,主要以图片裁剪组件为契机,使用IOP编程进行需求实现。所以不会讲解图片裁剪组件的代码逻辑(这块逻辑...

  • 10.重新构图-裁剪、旋转

    裁剪和旋转都是对图片进行重新构图的最基本操作。使用裁剪工具可以重新调整图片比例,去除照片中干扰物和多余的部分,突出...

  • iOS之图片裁剪、添加水印

    图片裁剪 第一种:获取图片原大小,按图片原大小裁剪图片(UIImage转化为CGImageRef进行裁剪) 第二种...

  • iOS 开发中遇到的问题以及解决方法

    1、图片出现锯齿(显示区域与图片像素不匹配) 解决方案: 先将图片画出来,进行裁剪使用- (UIImage *)s...

网友评论

      本文标题:uni-app使用image-cropper进行图片裁剪(个人笔

      本文链接:https://www.haomeiwen.com/subject/rmzkjrtx.html