纯前端实现截图功能
纯前端实现截图功能
- 一、插件
- 二、主要代码
一、插件
一、安装html2canvas、vue-cropper
npm i html2canvas --save //用于将指定区域转为图片
npm i vue-cropper -S //将图片进行裁剪二、在main.js注册vue-cropper组件
import VueCropper from 'vue-cropper'
Vue.use(VueCropper)三、页面中引入html2canvas
import html2canvas from "html2canvas"
二、主要代码
<template><div><h2 style="font-size: 20px" @click="tailoring">裁剪</h2><!--继续写页面的其他内容 pop_alert可封装成组件使用--><p>截图展示的图片</p><img style="border: 5px solid #000000" :src="uploadImg" alt="" /><div class="pop_alert" v-if="show"><vueCropper@mouseenter.native="enter"@mouseleave.native="leave"ref="cropper":img="uploadImg":outputSize="option.size":outputType="option.outputType":info="true":full="option.full":canMove="option.canMove":canMoveBox="option.canMoveBox":original="option.original":autoCrop="option.autoCrop":fixed="option.fixed":fixedNumber="option.fixedNumber":centerBox="option.centerBox":infoTrue="option.infoTrue":fixedBox="option.fixedBox"style="background-image: none"></vueCropper><div class="btn_box"><div @click="save">确认截图</div><div @click="close">取消</div></div></div></div>
</template>
<script>
import html2canvas from 'html2canvas'
export default {data() {return {option: {info: true, // 裁剪框的大小信息outputSize: 0.8, // 裁剪生成图片的质量outputType: 'jpeg', // 裁剪生成图片的格式canScale: false, // 图片是否允许滚轮缩放autoCrop: false, // 是否默认生成截图框fixedBox: false, // 固定截图框大小 不允许改变fixed: false, // 是否开启截图框宽高固定比例fixedNumber: [7, 5], // 截图框的宽高比例full: true, // 是否输出原图比例的截图canMove: false, //时候可以移动原图canMoveBox: true, // 截图框能否拖动original: false, // 上传图片按照原始比例渲染centerBox: false, // 截图框是否被限制在图片里面infoTrue: true, // true 为展示真实输出图片宽高 false 展示看到的截图框宽高},uploadImg: '',show: false,}},methods: {tailoring() {//裁剪this.$nextTick(() => {html2canvas(document.body, {}).then(canvas => {let dataURL = canvas.toDataURL('image/png')console.log(dataURL, 'dataURL')this.uploadImg = dataURLthis.show = true})})},enter() {if (this.uploadImg == '') {return}this.$refs.cropper.startCrop() //开始裁剪},leave() {this.$refs.cropper.stopCrop() //停止裁剪},save() {//确认截图this.$refs.cropper.getCropData(data => {//获取截图的base64格式数据console.log(data)this.show = false})// this.$refs.cropper.getCropBlob(data => { //获取截图的Blob格式数据// this.cutImg = data;// });},close() {//取消this.show = false},},
}
</script>
<style>
.pop_alert {width: 100%;height: 100%;position: absolute;top: 0;left: 0;border: 1px dashed red;background-color: #000000;
}
.btn_box {position: absolute;top: 0;color: red;right: 0;font-size: 30px;display: flex;align-items: center;z-index: 6666;
}
</style>
链接: https://www.cnblogs.com/zwbsoft/p/16657954.html
相关文章:
纯前端实现截图功能
纯前端实现截图功能 一、插件二、主要代码 一、插件 一、安装html2canvas、vue-cropper npm i html2canvas --save //用于将指定区域转为图片 npm i vue-cropper -S //将图片进行裁剪二、在main.js注册vue-cropper组件 import VueCropper from vue-cropper Vue.use(VueCropper…...
【网络协议】应用层协议--HTTP
文章目录 一、HTTP是什么?二、HTTP协议工作过程三、HTTP协议1. fiddler2. Fiddler抓包的原理3. 代理服务器是什么?4. HTTP协议格式1.1 请求1.2 响应 四、认识HTTP的请求1.认识HTTP请求的方法2.认识请求头(header)3.认识URL3.1 URL是什么&…...
【图书推荐】《Vue.js 3.x+Element Plus从入门到精通(视频教学版)》
配套示例源码与PPT课件下载 百度网盘链接: https://pan.baidu.com/s/1nBQLd9UugetofFKE57BE5g?pwdqm9f 自学能力强的,估计不要书就能看代码学会吧。 内容简介 本书通过对Vue.js(简称Vue)的示例和综合案例的介绍与演练,使读者…...
抖店如何打造出爆品?学好这几招,轻松打爆新品流量
大家好,我是电商花花。 近年来,抖店商家越来越多,而选品,爆品就是我们商家竞争的核心了,谁能选出好的新品,打造出爆品,谁的会赚的多,销量多。 做抖音小店想出单,想赚钱…...
软件需求规范说明模板
每个软件开发组织都会为自己的项目选用一个或多个标准的软件需求规范说明模板。有许多软件需求规范说明模板可以使用(例如ISO/IEC/IEEE2011;Robertson and Robertson2013)。如果你的组织要处理各种类型或规模的项目,例如新的大型系统开发或是对现有系统进行微调&…...
vs2013使用qt Linguist以及tr不生效问题
一、qt Linguist(语言家)步骤流程 1、创建翻译文件,在qt选项中 2.选择对应所需的语言,得到.ts后缀的翻译文件 3.创建.pro文件,并将.ts配置在.pro文件中 3.使用qt Linguist 打开创建好的以.ts为后缀的翻译文件,按图所示…...
Leetcode 3163. String Compression III
Leetcode 3163. String Compression III 1. 解题思路2. 代码实现 题目链接:3163. String Compression III 1. 解题思路 这一题的话就是一个简单的贪婪算法,把相同的字符进行归并,然后按照题目中的表示方法进行表示一下即可。 2. 代码实现…...
Java匿名内部类的使用
演示匿名内部类的使用,很重要 package com.shedu.Inner;/*** 演示匿名内部类的使用*/ public class AnonymousInnerClass {//外部其他类public static void main(String[] args) {Outer04 outer04 new Outer04();outer04.method();} }class Outer04{//外部类priva…...
把自己的垃圾代码发布到官方中央仓库
参考博客:将组件发布到maven中央仓库-CSDN博客 感谢这位博主。但是他的步骤有漏缺,相对进行补充 访问管理页面 网址:Maven Central 新注册账号,或者使用github快捷登录,建议使用github快捷登录 添加命名空间 注意&…...
单机一天轻松300+ 最新微信小程序拼多多+京东全自动掘金项目、
现代互联网经济的发展带来了新型的盈利方式,这种方法通过微信小程序的拼多多和京东进行商品自动巡视,以此给商家带来增加的流量,同时为使用者带来利润。实践这一手段无需复杂操作,用户仅需启动相应程序,商品信息便会被…...
线性回归模型之套索回归
概述 本案例是基于之前的岭回归的案例的。之前案例的完整代码如下: import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Ridge, LinearRegression from sklearn.datasets import make_regression from sklearn.model_selectio…...
解决文件夹打开出错问题:原因、数据恢复与预防措施
在我们日常使用电脑或移动设备时,有时会遇到一个非常棘手的问题——文件夹打开出错。这种错误可能会让您无法访问重要的文件和数据,给工作和生活带来极大的不便。本文将带您深入了解文件夹打开出错的原因,并提供有效的数据恢复方案࿰…...
Spring:面向切面(AOP)
1. 代理模式 二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类**间接**调用。让不属于目标方法核心逻辑的代码从目标方法中剥…...
本地镜像文件怎么导入docker desktop
docker tag d1134b7b2d5a new_repo:new_tag...
【机器学习-23】关联规则(Apriori)算法:介绍、应用与实现
在现代数据分析中,经常需要从大规模数据集中挖掘有用的信息。关联规则挖掘是一种强大的技术,可以揭示数据中的隐藏关系和规律。本文将介绍如何使用Python进行关联规则挖掘,以帮助您发现数据中的有趣模式。 一、引言 1. 简要介绍关联规则学习…...
Gradle筑基——Gradle Maven仓库管理
基础概念: 1.POM pom:全名Project Object Model 项目对象模型,用来描述当前maven项目发布模块的基础信息 pom主要节点信息如下: 配置描述举例(com.android.tools.build:gradle:4.1.1)groupId组织 / 公司的名称com.…...
c++11:智能指针的种类以及使用场景
指针管理困境 内存释放,指针没有置空;内存泄漏;资源重复释放 怎样解决? RAII 智能指针种类 shared_ptr 实现原理:多个指针指向同一资源,引用计数清零,再调用析构函数释放内存。 使用场景…...
RabbitMQ-默认读、写方式介绍
1、RabbitMQ简介 rabbitmq是一个开源的消息中间件,主要有以下用途,分别是: 应用解耦:通过使用RabbitMQ,不同的应用程序之间可以通过消息进行通信,从而降低应用程序之间的直接依赖性,提高系统的…...
阿里云百炼大模型使用
阿里云百炼大模型使用 由于阿里云百炼大模型有个新用户福利,有免费的4000000 tokens,我开通了相应的服务试试水。 使用 这里使用Android开发了一个简单的demo。 安装SDK implementation group: com.alibaba, name: dashscope-sdk-java, version: 2.…...
亲测有效,通过接口实现完美身份证号有效性验证+身份证与姓名匹配查询身份实名认证接口(实时)
最近发现一个限时认证的接口分享给大家,有需要的拿去试下吧. 附上部分密钥f478186edba9854f205a130aa888733d227a8f82f98d84b9【剩余约125450次,无时间限制】 b6131281611f6e1fc86c8662f549bdd683a68517203ba312【剩余约1300次,无时段限制】 …...
终极免费文档下载工具:跨平台文档获取的完整解决方案
终极免费文档下载工具:跨平台文档获取的完整解决方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解…...
Qwen3-4B Instruct-2507效果实测:金融研报关键信息抽取准确率达89.4%
Qwen3-4B Instruct-2507效果实测:金融研报关键信息抽取准确率达89.4% 1. 引言:当大模型遇上金融研报 金融分析师每天都要面对海量的研究报告。一份动辄几十页的研报,里面藏着公司业绩、行业趋势、投资建议等关键信息。传统的人工阅读和提取…...
Kotaemon功能测评:这个开源RAG UI到底有多好用?
Kotaemon功能测评:这个开源RAG UI到底有多好用? 想象一下,你手头有一堆产品文档、技术手册或者内部资料,每次想从中快速找到某个问题的答案,都得像大海捞针一样翻来翻去。或者,你费劲搭建了一个RAG&#x…...
如何在5分钟内从视频中提取硬字幕?Video-subtitle-extractor完整教程
如何在5分钟内从视频中提取硬字幕?Video-subtitle-extractor完整教程 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域…...
tao-8k嵌入模型惊艳体验:Xinference WebUI界面操作,效果一目了然
tao-8k嵌入模型惊艳体验:Xinference WebUI界面操作,效果一目了然 1. tao-8k模型核心能力展示 tao-8k是由Hugging Face开发者amu研发的开源文本嵌入模型,专注于将文本转换为高维向量表示。这款模型最引人注目的特点是支持长达8192个token的上…...
VSCode下载与配置Starry Night Art Gallery开发环境
VSCode下载与配置Starry Night Art Gallery开发环境 如果你对“Starry Night Art Gallery”这个项目感兴趣,想动手参与开发或者自己搭建一个类似的数字艺术画廊,那么第一步就是准备好趁手的开发工具。Visual Studio Code(简称VSCode…...
Java 微服务弹性模式:构建高可用分布式系统
Java 微服务弹性模式:构建高可用分布式系统今天我们来聊聊 Java 微服务中的弹性模式,这是构建高可用分布式系统的核心能力。一、为什么需要弹性模式 在分布式系统中,故障是不可避免的。网络延迟、服务宕机、资源耗尽等问题随时可能发生。如果…...
接触电阻波动10mΩ?医疗连接器导电性能的隐形红线
从事连接器工程整整10年,今天想跟医疗设备行业的各位同行,聊一个最容易被忽略、却最容易出大问题的细节——医疗连接器的接触电阻波动。相信很多做设备选型的工程师都有过这样的经历:选连接器时,盯着规格书上的初始接触电阻值看&a…...
OpenClaw异常处理机制:千问3.5-27B任务失败自动回滚
OpenClaw异常处理机制:千问3.5-27B任务失败自动回滚 1. 为什么需要异常处理机制 上周我让OpenClaw执行一个复杂的文件处理任务:扫描2000多份PDF合同,提取关键条款并生成汇总表格。本以为可以喝着咖啡等结果,没想到半夜收到飞书报…...
千问3.5-27B流式响应:OpenClaw实现长任务实时进度反馈
千问3.5-27B流式响应:OpenClaw实现长任务实时进度反馈 1. 为什么需要流式响应 上周我尝试用OpenClaw对接千问3.5-27B模型处理一份200页的PDF文档转换任务,结果遇到了一个尴尬场景——在飞书机器人对话窗口输入指令后,整整15分钟没有任何反馈…...
