vue-img-cutter 图片裁剪详解

简介: vue-img-cutter 图片裁剪详解

前言: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>


目录
相关文章
|
6月前
|
JavaScript 索引 容器
vue element plus Image 图片
vue element plus Image 图片
111 0
|
前端开发 JavaScript Java
基于cropper.js的图片上传和裁剪
基于cropper.js的图片上传和裁剪
256 0
|
3月前
|
容器
Vue3图片(Image)
该图片预览组件提供丰富的功能,包括设置鼠标悬浮预览文本、图像描述、尺寸调整、适应容器模式等。支持单张或多张图片展示,具备旋转、缩放、镜像等功能,并可通过键盘或滚轮控制。组件允许自定义多项属性,如图像地址、宽度、高度、边框显示等,并兼容多种使用场景,如相册模式和循环切换。组件内部使用了 Vue3 的 `Spin` 和 `Space` 组件以及 `add` 函数辅助实现。
Vue3图片(Image)
|
3月前
|
JavaScript
如何在Vue页面中引入img下的图片作为背景图。../的使用
这篇文章介绍了在Vue页面中如何引入`img`目录下的图片作为背景图,提供了两种使用相对路径的方法。第一种是使用`../assets/img/`作为路径引入图片,第二种是使用`../../assets/img/`作为路径。文章还展示了使用这些方法的代码实现和效果展示,并鼓励读者学无止境。
如何在Vue页面中引入img下的图片作为背景图。../的使用
|
4月前
|
XML JavaScript 前端开发
vue实战——图标,请使用SVG!(含插件vue-svg-icon的使用)
vue实战——图标,请使用SVG!(含插件vue-svg-icon的使用)
83 1
|
4月前
|
JavaScript
vue 头像修改-裁剪图片 vue-cropper
vue 头像修改-裁剪图片 vue-cropper
147 0
|
12月前
|
Web App开发 JavaScript 前端开发
Vue上传图片裁剪预览插件vue-img-cutter的使用
Vue上传图片裁剪预览插件vue-img-cutter的使用
411 0
|
6月前
|
前端开发 JavaScript
react中img引入本地图片的方式
react中img引入本地图片的方式
266 0
|
6月前
|
JavaScript API
vue使用Element-plus的Image预览时样式崩乱
vue使用Element-plus的Image预览时样式崩乱
176 0
vue使用Element-plus的Image预览时样式崩乱
|
JavaScript 前端开发 算法
vue上传图片并修改png图片颜色
当涉及到在 Vue 中上传图片并修改 PNG 图片的颜色时,这个任务涵盖了文件上传、图像处理、Canvas 操作等多个方面 在现代 Web 开发中,图片的处理是常见的需求之一。本文将带您深入探讨如何使用 Vue.js 来实现图片上传,并在客户端使用 Canvas 来修改 PNG 图片的颜色。
258 0
vue上传图片并修改png图片颜色