vue3 vue-cropper@next 实现图片裁切功能

news2025/1/12 1:10:01

Vue Cropper

实现上传图片预览,裁切上传效果

在这里插入图片描述

下载

pnpm add vue-cropper@next

使用

<template>
    <input
        ref="inputRef"
        class="hidden"
        accept=".png,.jpeg,.jpg"
        multiple
        type="file"
        @change="handleUploadChange"
    />
    <div @click="submitUpload">上传</div>

    <div class="flex mt-50px">
        <div class="w-400px h-360px">
            <vue-cropper
                ref="cropperRef"
                :img="image"
                :autoCrop="option.autoCrop"
                :autoCropWidth="option.autoCropWidth"
                :autoCropHeight="option.autoCropHeight"
                @real-time="realTime"
            ></vue-cropper>
        </div>

        <!-- 实时预览 -->
        <div v-html="preview.html"></div>

        <div @click="handleConfirm">确认</div>
    </div>
</template>

<script lang="ts" setup>
import "vue-cropper/dist/index.css";
import { VueCropper } from "vue-cropper";

import { ref } from "vue";
const preview = ref<any>({});
const inputRef = ref();
function submitUpload() {
    inputRef.value?.click();
}
const image = ref();
async function handleUploadChange(e: Event) {
    const { files } = e.target as HTMLInputElement;
    if (files && files.length >= 1) {
        const file = files[0];

        const reader = new FileReader();
        reader.onload = (e) => {
            // data:image/jpeg;base64,/9j/4....
            image.value = e.target?.result;
        };
        reader.readAsDataURL(file);

        if (inputRef.value?.value) {
            inputRef.value.value = "";
        }
    }
}

const cropperRef = ref();
// 配置项
const option = ref({
    outputSize: 1, // 裁剪生成图片的质量
    outputType: "jpeg || png || webp", // 裁剪生成图片的格式
    info: true, // 裁剪框的大小信息
    canScale: true, // 图片是否允许滚轮缩放
    autoCrop: true, //    是否默认生成截图框
    autoCropWidth: 120, // 默认生成截图框宽度
    autoCropHeight: 120, // 默认生成截图框高度
    fixed: true, // 是否开启截图框宽高固定比例
    fixedBox: false, // 固定截图框大小
    canMove: true, // 上传图片是否可以移动
    canMoveBox: true, // 截图框能否拖动
    original: false, // 上传图片按照原始比例渲染
    centerBox: false, // 截图框是否被限制在图片里面
    high: true, // 是否按照设备的dpr 输出等比例图片
    infoTrue: true, // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
    maxImgSize: 2000, // 限制图片最大宽度和高度
    enlarge: 1, // 图片根据截图框输出比例倍数
    mode: "100%",
});

function realTime(data: any) {
    console.log("data", data);
    preview.value = data;
}
function handleConfirm() {
    cropperRef.value?.getCropBlob((data: Blob) => {
        // data Blob
    });
}
</script>
<style scoped></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1283283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于ssm实现的工资管理系统

一、系统架构 前端&#xff1a;jsp | jquery | layui 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及截图 三、功能介绍 01. 登录页 02. 首页 03. 用户管理-基本资料 04. 用户管理-修改密码 05. 人事管理-部门列表…

Leetcode—409.最长回文串【简单】

2023每日刷题&#xff08;四十八&#xff09; Leetcode—409.最长回文串 强烈吐槽&#xff01;&#xff01;&#xff01; 非常不理解&#xff0c;同样的代码&#xff0c;为什么C跑不了C就跑得了&#xff0c;力扣编译器是对C语言有歧视吗&#xff1f;&#xff1f;&#xff1f;…

【springboot原理篇】Bean的加载方式,面试必看

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、上古时代原始方式&#xff1a; &#x1f4d5;XML文件 ~~bean定义 &#x1f440;演示获取bean&#xff1a; ❌缺点&#xff1a; &#x1f4d5;注解方式&#xff1a; ~~component ~~指定扫描路径&#…

如何使用 Oracle SQL Developer 连接 pgvector

如何使用 Oracle SQL Developer 连接 pgvector 1. 下载 postgresql 的 jdbc 驱动2. Oracle SQL Developer 配置第三方驱动3. Oracle SQL Developer 配置 postgres 连接 1. 下载 postgresql 的 jdbc 驱动 访问 https://jdbc.postgresql.org/download/&#xff0c;下载驱动&…

Linux部署HDFS集群前置准备

二、VMware准备Linux虚拟机 三、VMware虚拟机系统设置 &#xff08;一&#xff09;对三台虚拟机完成主机名、固定IP、SSH免密登陆等系统设置 1.配置固定IP地址 打开控制台&#xff0c;切换到root用户 su -修改主机名、IP地址 vim /etc/sysconfig/network-scripts/ifcfg-ens3…

Temu数据面板:Temu商家必备的数据分析工具

在Temu这个电商平台上&#xff0c;越来越多的商家意识到数据分析的重要性。数据分析可以帮助商家更好地了解店铺的运营情况&#xff0c;从而制定更有效的运营策略&#xff0c;提高销售业绩。而在这个过程中&#xff0c;Temu数据面板成为了一个不可或缺的工具。 先给大家推荐一款…

学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg

学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg Error: Unable to find a match: ffmpeg添加RPMfusion仓库安装SDL安装ffmpeg执行命令测试 Error: Unable to find a match: ffmpeg 添加RPMfusion仓库 yum install https://download1.rpmfus…

LLM之RAG实战(二):使用LlamaIndex + Metaphor实现知识工作自动化

最先进的大型语言模型&#xff08;LLM&#xff09;&#xff0c;如ChatGPT、GPT-4、Claude 2&#xff0c;具有令人难以置信的推理能力&#xff0c;可以解锁各种用例——从洞察力提取到问答&#xff0c;再到通用工作流自动化。然而&#xff0c;他们检索上下文相关信息的能力有限。…

CCF CSP认证 历年题目自练Day51

此题又丑又长可以直接从题目分析&#xff08;个人理解&#xff09;部分看 题目 试题编号&#xff1a; 201812-3 试题名称&#xff1a; CIDR合并 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 样例输入 2 1 2 样例输出 1.0.0.0/8 2.0.0.0/8 样例输入 2 10/9 10…

2022年9月26日 Go生态洞察:Go运行时4年后的进展

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

不瞒各位,不安装软件也能操作Xmind文档

大家好&#xff0c;我是小悟 作为搞技术的一个人群&#xff0c;时不时就要接收产品经理发过来的思维脑图&#xff0c;而此类文档往往是以Xmind编写的&#xff0c;如果你的电脑里面没有安装Xmind的话&#xff0c;不好意思&#xff0c;是打不开这类后缀结尾的文档。 打不开的话…

Web漏洞分析-SQL注入XXE注入(中上)

随着互联网的不断普及和Web应用的广泛应用&#xff0c;网络安全问题愈发引起广泛关注。在网络安全领域中&#xff0c;SQL注入和XXE注入是两个备受关注的话题&#xff0c;也是导致许多安全漏洞的主要原因之一。本博客将深入研究这两种常见的Web漏洞&#xff0c;带您探寻背后的原…

隐写2-MISC-bugku-解题步骤

——CTF解题专栏—— 声明&#xff1a;文章由作者weoptions学习或练习过程中的步骤及思路&#xff0c;非正式答案&#xff0c;仅供学习和参考。 题目信息&#xff1a; 题目&#xff1a;隐写2 作者&#xff1a;harry 提示&#xff1a;f1g{xxx} 解题附件&#xff1a; 解题思路…

蓝桥杯物联网竞赛_STM32L071_9_按键矩阵扩展模块

原理图&#xff1a; 矩阵按键原理图&#xff1a; 实验板接口原理图&#xff1a; 得到对应图&#xff1a; 扫描按键原理&#xff1a; 按键的COLUMN1、2、3分别制0&#xff0c;每次只允许其中一个为0其他都是1&#xff08;POW1和POW2正常状况为上拉&#xff09;&#xff0c;当有…

深入了解Java Duration类,对时间的精细操作

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概6000多字&#xff0c;预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…

为了让亲戚也能用上chatgpt,我决定建一个代理站点

&#xff08;本文试着用gpt优化了一下&#xff0c;效果有&#xff0c;但是不多&#xff09; ChatGPT在编程中的应用 当ChatGPT刚出来的时候&#xff0c;我尝试了几次&#xff0c;感觉它就像是一个高级版的搜索引擎。但在过去的一个月里&#xff0c;我在公司经常使用GPT来查询…

ruby安装(vscode、rubymine)

https://rubyinstaller.org/downloads/ 下载exe安装即可 会弹出 输入3 安装成功 vscode插件市场安装ruby插件 新建一个目录&#xff0c;打开terminal bundle init //进行初始化&#xff08;如果执行不了&#xff0c;应该是环境变量没生效&#xff0c;重启vscode&#…

Pillow操控图像,Python必备神器全面解析!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Pillow 是一个强大的 Python 图像处理库&#xff0c;它提供了丰富的功能&#xff0c;能够处理图像的加载、编辑、处理和保存。这个库建立在 Python Imaging Library (PIL) 的基础上&#xff0c;并延续了 PIL 的开…

芯擎科技与芯华章深度合作,软硬件协同开发加速车规级芯片创新

12月4日&#xff0c;系统级验证EDA解决方案提供商芯华章&#xff0c;与国产高端车规芯片设计公司芯擎科技正式建立战略合作。双方强强联手&#xff0c;芯擎科技导入芯华章相关EDA验证工具&#xff0c;赋能车规级芯片和应用软件的协同开发&#xff0c;助力大规模缩短产品上市周期…

预测胶质瘤预后的铜结合蛋白的转录组学特征

今天给同学们分享一篇生信文章“Transcriptomic Characterization of Copper-Binding Proteins for Predicting Prognosis in Glioma”&#xff0c;这篇文章发表在Brain Sci期刊上&#xff0c;影响因子为3.3。 结果解读&#xff1a; 铜结合蛋白的转录组表达 共有85种蛋白质被确…