vue+cropperjs实现图片裁剪功能——PC端+移动端——技能提升

矫情吗;* 2022-09-04 11:51 423阅读 0赞

最近发现了一个图片裁剪的插件cropperjs,这个插件非常的强大,能够实现多种功能:

可以对指定的图片进行裁剪,可以自己选择裁剪的交互方式,如大小、纵横比等 还可以预览裁剪区域,确认裁剪后可以生成一个包含裁剪图的canvas对象,借助canvastoDataURL方法可以生成一张Base64格式的图片。还有另外一种不使用canvas的方式,利用该工具丰富的api可以拿到裁剪区域相对于原图的各项数据,使用这些数据进行css绝对定位即可展示裁剪后的图,该方式可以保证图片不失真和完整。
大神使用cropperjs的链接:https://www.cnblogs.com/eightFlying/p/cropper-demo.html

cropperjs官网:https://fengyuanchen.github.io/cropper/

我并未深入研究此插件,此篇文章只简单介绍一下等比例的裁剪功能及使用步骤。

1.安装cropperjs插件

npm install cropperjs --save-dev

安装完插件后,由于此插件并非很多页面都要用到,因此可以不在main.js主入口文件中全局引入,可以在需要使用图片裁剪功能的地方单独引入即可。

2.template部分代码

页面部分,有个原图部分+裁剪按钮+裁剪区域+裁剪后的图片部分。

  1. <div class="before"></div>
  2. <el-button @click="sureSava">裁剪</el-button>
  3. <div class="container">
  4. <div class="img-container">
  5. <img src="@/assets/401_images/401.gif" ref="image" alt="" />
  6. </div>
  7. <div class="afterCropper">
  8. <img :src="afterImg" alt="" />
  9. </div>
  10. </div>

3.js部分代码

  1. import Cropper from "cropperjs";
  2. import "cropperjs/dist/cropper.css";
  3. export default{
  4. data(){
  5. return{
  6. myCropper: null,
  7. afterImg: "",
  8. }
  9. },
  10. created(){
  11. this.$nextTick(()=>{
  12. this.init();
  13. })
  14. },
  15. methods:{
  16. init(){
  17. this.myCropper = new Cropper(this.$refs.image,{
  18. viewMode:1,
  19. dragNode:'none',
  20. initialAspectRatio:1,
  21. aspectRatio:1,
  22. preview:'.before',
  23. background: false,
  24. autoCropArea: 0.6,
  25. zoomOnWheel: false
  26. })
  27. },
  28. sureSava(){
  29. this.afterImg = this.myCropper.getCroppedCanvas({
  30. imageSmoothingQuality:'high'
  31. }).toDataURL('image/jpeg');
  32. }
  33. }
  34. }

4.css部分

  1. .container{
  2. display: flex;
  3. }
  4. .before{
  5. width: 100px;
  6. height: 100px;
  7. overflow: hidden;
  8. /* 这个属性可以得到想要的效果 */
  9. }
  10. .img-container{
  11. height: 400px;
  12. overflow: hidden;
  13. }
  14. .afterCropper{
  15. flex: 1;
  16. margin-left: 20px;
  17. border: 1px solid salmon;
  18. text-align: center;
  19. }
  20. .afterCropper img{
  21. width: 150px;
  22. margin-top: 30px;
  23. }

5.最终效果图

在这里插入图片描述

附录一个超级详细的使用参数说明:大神就是大神,生活中处处都是大神。

大神提供的cropperjs的参数详细说明:https://blog.csdn.net/achejq/article/details/93240104

完成!!!

发表评论

表情:
评论列表 (有 0 条评论,423人围观)

还没有评论,来说两句吧...

相关阅读

    相关 pc移动的区别

    1、操作方式不同 PC端的操作方式与移动端已经有了明显的差别,PC端使用鼠标操作,操作包含滑动、左击、右击、双击操作,操作相对来说单一,交互效果相对较少。 而对于手机端来说