vue-img-cutter 图片裁剪详解

devtools/2024/10/18 9:22:27/

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

http://www.ppmy.cn/devtools/41111.html

相关文章

MySQL_DDL语句

1.Data类临时数据的弊端 我们之前在将ServletJSP配合处理请求的过程中 数据库起到一个存取数据的作用 但是我们之前的案例中 数据是在Data类中临时定义的 并不是从数据库中获取的 这样做是不好的 因为每一次服务器关闭之后 那么部署在其上的类也会随着卸载 紧接着和类相挂钩的静…

Milvus入门初探

引言 Milvus 是一款开源的向量数据库&#xff0c;专为处理向量搜索任务而设计。它支持多种类型的向量&#xff0c;如浮点向量、二进制向量等&#xff0c;并且可以处理大规模的向量数据。Milvus 在 AI 应用中非常流行&#xff0c;尤其是在需要执行相似性搜索或最近邻搜索的场景…

python 基础(笔记)

文章目录 1. 环境安装2. 第一个程序 hello word3. 注释4. 变量4.1 变量声明4.2 命名规则4.3 命名规范 5. 运算符5.1 算术运算符5.2 赋值运算符5.3 比较运算符 6. 数据类型6.1 数据类型6.2 数据类型的转换 7. 字符串操作7.1 字符串定义的几种方式7.2 字符串拼接7.3 字符串格式化…

Google Gemma 2B 微调实战(IT科技新闻标题生成)

本文我将使用 Google 的 Gemma-2b 模型来微调一个基于IT科技新闻正文来生成对应标题的模型。并且我将介绍如何使用高度集成的训练框架来进行快速微调。 开始前 为了尽可能简化整个流程,我将使用 linux-cn 数据集[1]作为本次训练任务的训练数据。 模型选择使用 Gemma-2b[2],…

个人模拟面试java2

文章目录 SQL如何进行优化数据库性能调优1. 性能评估2. 确定调优目标 3. 监控和分析4. 硬件和配置调优5. 数据库设计和模式优化6. 查询优化7. 并发控制8. 缓存策略9. 定期维护10. 监控和持续调优 Redis支持哪些数据类型&#xff1f;Redis如何实现持久化&#xff1f;如何解决Red…

【qt】核心机制信号槽(下)

这里写目录标题 自定义的信号自定义的槽自定义的信号和槽的结合使用信号和槽的断开总结&#xff1a; 自定义的信号 信号就是一个函数声明 前面咱们都用的qt组件自带的信号&#xff0c;接下来我们自己写一个信号。 信号只需要在前面加一个signals即可 这个函数不需要实现 参数传…

Flink HA模式下JobManager切换时发送告警

资源&版本信息 Flink版本1.14.6 运行平台&#xff1a;K8s HA使用ZK&#xff08;使用K8s的ETC应该是一个道理&#xff09; 详解Flink HA原理 Flink启动时会创建HighAvailabilityServices提供HA和相关基础服务&#xff0c;其中包括leaderRetrievalService和LeaderElecti…

RestTemplate接口请求发送json、form数据格式以及处理接口错误状态码400 null

在使用RestTemplate发送HTTP请求时&#xff0c;你可以通过不同的方式发送JSON或表单数据&#xff08;application/x-www-form-urlencoded&#xff09;。同时&#xff0c;处理接口错误状态码&#xff08;如400&#xff09;和返回null的情况也是很重要的。以下是一些示例代码&…