vue3 中使用vue img cutter 图片裁剪插件的方法

 更新时间:2024年05月08日 10:05:51   作者:yqcoder  
这篇文章主要介绍了vue3 中使用vue img cutter 图片裁剪插件的方法,首先安装依赖,构建 components/ImgCutter.vue 组件,需要的朋友可以参考下

前言:vue-img-cutter 文档,本文档主要讲解插件在 vue3 中使用。

一:安装依赖

npm install vue-img-cutter
# or
yarn add vue-img-cutter
# or
pnpm add vue-img-cutter

二:构建 components/ImgCutter.vue 组件

<script setup lang="ts">
  import ImgCutter from "vue-img-cutter";
  import { updateAvatar } from "@/api/user.ts";
  let emits = defineEmits(["getUrl"]);
  let cutDown = (data: any) => {
    let formData = new FormData();
    let { file } = data;
    formData.append("file", file);
    updateAvatar(formData).then((res) => {
      emits("getUrl", res);
    });
  };
</script>
<template>
  <ImgCutter @cutDown="cutDown"></ImgCutter>
</template>
<style lang="scss" scoped></style>

三:使用组件

<script setup lang="ts">
  import ImgCutter from "@/components/ImgCutter.vue";
  const getUrl = (str: any) => {
    console.log(1, str);
  };
</script>
<template>
  <div class="index">
    <ImgCutter @getUrl="getUrl" />
  </div>
</template>

四:参数

1. isModal

是否为弹窗模式,默认 true

<ImgCutter :isModal="true" />

2. showChooseBtn

是否显示选择图片按钮,默认 true

<ImgCutter :showChooseBtn="true" />

3. lockScroll

是否在 Dialog 出现时将 body 滚动锁定,默认 true

<ImgCutter :lockScroll="true" />

4. label

默认打开裁剪工具按钮的显示文字,默认 “选择图片”

<ImgCutter label="选择图片" />

5. boxWidth

裁剪工具宽度,默认 800

<ImgCutter :boxWidth="800" />

6. boxHeight

裁剪工具高度,默认 400

<ImgCutter :boxHeight="400" />

7. cutWidth

默认裁剪宽度,默认 200

<ImgCutter :cutWidth="200" />

8. cutHeight

默认裁剪高度,默认 200

<ImgCutter :cutHeight="200" />

9. tool

是否显示工具栏,默认 true

<ImgCutter :tool="true" />

10. toolBgc

工具栏背景色,默认 #fff

<ImgCutter toolBgc="#fff" />

11. sizeChange

是否能够调整裁剪框大小,默认 true

<ImgCutter :sizeChange="true" />

12. moveAble

能否调整裁剪区域位置,默认 true

<ImgCutter :moveAble="true" />

13. imgMove

能否拖动图片,默认 true

<ImgCutter :imgMove="true" />

14. originalGraph

是否直接裁剪原图,默认 false

<ImgCutter :originalGraph="false" />

15. crossOrigin

是否设置跨域,需要服务器做相应更改,默认 false

<ImgCutter :crossOrigin="false" />

16. crossOriginHeader

设置跨域信息 crossOrigin 为 true 时才生效

<ImgCutter :crossOrigin="true" crossOriginHeader="" />

17. rate

图片比例,例:"4:3"

<ImgCutter rate="4:3" />

18. WatermarkText

水印文字

<ImgCutter WatermarkText="水印" />

19. WatermarkTextFont

水印文字字体,默认 "12px Sans-serif"

<ImgCutter WatermarkTextFont="12px Sans-serif" />

20. WatermarkTextColor

水印文字颜色,默认 '#fff'

<ImgCutter WatermarkTextColor="#fff" />

21. WatermarkTextX

水印文字水平位置,默认 0.95

<ImgCutter :WatermarkTextX="0.95" />

22. WatermarkTextY

水印文字垂直位置,默认 0.95

<ImgCutter :WatermarkTextY="0.95" />

23. smallToUpload

如果裁剪尺寸固定且图片尺寸小于裁剪尺寸则不裁剪直接返回文件,默认 false

<ImgCutter :smallToUpload="false" />

24. saveCutPosition

是否保存上一次裁剪位置及大小,默认 false

<ImgCutter :saveCutPosition="false" />

25. scaleAble

是否允许滚轮缩放图片,默认 true

<ImgCutter :scaleAble="true" />

26. toolBoxOverflow

是否允许裁剪框超出图片范围,默认 true

<ImgCutter :toolBoxOverflow="true" />

27. index

自定义参数,将会同结果一起返回,默认 null

<ImgCutter index="aaaa" />

28. previewMode

裁剪过程中是否返回裁剪结果,如果裁剪出现卡顿时将此项设置为 false,默认 true

<ImgCutter :previewMode="true" />

29. fileType

返回的文件类型 ( png / jpeg / webp),默认 png

<ImgCutter fileType="png" />

30. quality

图像质量,默认 1

<ImgCutter :quality="1" />

31. accept

图片类型,默认 'image/gif, image/jpeg ,image/png'

<ImgCutter accept="image/gif, image/jpeg ,image/png" />

五:钩子函数

1. cutDown

完成截图后要执行的方法,返回值:Object

<ImgCutter @cutDown="cutDown" />

2. error

错误回调,返回值:Error object

<ImgCutter @error="error" />

3. onChooseImg

选择图片后,返回值:Object

<ImgCutter @onChooseImg="onChooseImg" />

4. onPrintImg

在画布上绘制图片,返回值:Object

<ImgCutter @onPrintImg="onPrintImg" />

5. onClearAll

清空画布,返回值:null

<ImgCutter @onClearAll="onClearAll" />

六:插槽

1. open 或 openImgCutter

弹出裁剪框

<ImgCutter>
  <template #open> 选择图片 </template>
</ImgCutter>

2. choose

选择本地图片

<ImgCutter>
  <template #choose> 选择图片 </template>
</ImgCutter>

3. cancel

取消/清空

<ImgCutter>
  <template #cancel> 取消 </template>
</ImgCutter>

4. confirm

确认裁剪

<ImgCutter>
  <template #confirm> 确认裁剪 </template>
</ImgCutter>

5. ratio

工具栏:宽高比

<ImgCutter>
  <template #ratio> 工具栏:宽高比 </template>
</ImgCutter>

6. scaleReset

工具栏:重置缩放

<ImgCutter>
  <template #scaleReset> 取消 </template>
</ImgCutter>

7. turnLeft

工具栏:向左旋转

<ImgCutter>
  <template #turnLeft> 工具栏:向左旋转 </template>
</ImgCutter>

8. turnRight

工具栏:向右旋转

<ImgCutter>
  <template #turnRight> 工具栏:向右旋转 </template>
</ImgCutter>

9. reset

工具栏:重置旋转

<ImgCutter>
  <template #reset> 工具栏:重置旋转 </template>
</ImgCutter>

10. flipHorizontal

工具栏:水平翻转

<ImgCutter>
  <template #flipHorizontal> 工具栏:水平翻转 </template>
</ImgCutter>

11. flipVertically

工具栏:重置旋转

<ImgCutter>
  <template #flipVertically> 工具栏:垂直翻转 </template>
</ImgCutter>

到此这篇关于vue img cutter 图片裁剪详解的文章就介绍到这了,更多相关vue img cutter裁剪内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于vue3 vuex4 store的响应式取值问题解决

    关于vue3 vuex4 store的响应式取值问题解决

    这篇文章主要介绍了vue3 vuex4 store的响应式取值问题,在实际生活中遇到这样一个问题:在页面中点击按钮,数量增加,值是存在store中的,点击事件值没变,如何解决这个问题,本文给大家分享解决方法,需要的朋友可以参考下
    2022-08-08
  • vue实现滑动到底部加载更多效果

    vue实现滑动到底部加载更多效果

    这篇文章主要为大家详细介绍了vue实现滑动到底部加载更多效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • vue-cli3项目打包后自动化部署到服务器的方法

    vue-cli3项目打包后自动化部署到服务器的方法

    这篇文章主要介绍了vue-cli3项目打包后自动化部署到服务器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • vue2引入Three.js预览3D文件的实现方法

    vue2引入Three.js预览3D文件的实现方法

    three.js是一个基于WebGL的JavaScript库,它允许开发者在网页上创建和显示3D图形,这篇文章主要介绍了vue2引入Three.js预览3D文件的实现方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • springboot + vue+elementUI实现图片上传功能

    springboot + vue+elementUI实现图片上传功能

    文章描述了如何使用Element UI的el-upload组件实现前端图片上传,并将图片存储到后端数据库,同时在页面上回显上传的图片,后端通过接口接收图片,并将其存储在指定位置,然后返回图片路径以便在前端显示,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01
  • 解决vue单页面应用进入页面加载所有 js 的问题

    解决vue单页面应用进入页面加载所有 js 的问题

    这篇文章主要介绍了解决vue单页面应用进入页面加载所有 js 的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue+echarts5实现中国地图的示例代码

    vue+echarts5实现中国地图的示例代码

    本文主要介绍了vue+echarts5实现中国地图的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • vue通过滚动行为实现从列表到详情,返回列表原位置的方法

    vue通过滚动行为实现从列表到详情,返回列表原位置的方法

    今天小编就为大家分享一篇vue通过滚动行为实现从列表到详情,返回列表原位置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue中.vue文件比main.js先执行的问题及解决

    Vue中.vue文件比main.js先执行的问题及解决

    这篇文章主要介绍了Vue中.vue文件比main.js先执行的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 让你一看就明白的$nextTick讲解

    让你一看就明白的$nextTick讲解

    在我们用vue时,我们经常用到一个方法是this.$nextTick,相信你也用过,我常用的场景是在进行获取数据后,需要对新视图进行下一步操作或者其他操作时,发现获取不到dom,这篇文章主要给大家介绍了关于$nextTick的相关资料,需要的朋友可以参考下
    2021-07-07

最新评论