<div> 截图并且下载

用Base64.min.js对数据进行加密 阅读详情

1、下载        base64.js、jquery-1.11.3.min.js、html2canvas.js        文件

https://download.youkuaiyun.com/download/simplexiaobo/25522312?spm=1001.2014.3001.5503

2、引入上面的文件

<script type="text/javascript" src="__STATIC__/home/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="__STATIC__/home/js/html2canvas.js"></script>
<script type="text/javascript" src="__STATIC__/home/js/base64.js"></script>

3、定义需要截取的位置

<!-- 二维码背景区域 -->
<div class="code-box" id="test">
    <img src="home/static/invite-bg.png" class="bg" />
    <div class="user-info">
        <img src="" />
        <div>哈哈哈</div>
    </div>
    <div class="er-code">
        <img src="" />
    </div>
    <div class="invite-code">邀请码:11111</div>
    <div class="btn-box">
        <div class="btn" style="margin-right: 1.25rem;" id="down">保存到手机</div>
        <div class="btn">立即邀请</div>
    </div>
</div>

4、定义画布

<!-- 将页面转换为画布 -->
<canvas id="canvas" style="display: none;"></canvas>

5、定义一个隐藏下载按钮(直接href跳转不会直接下载) 

<a id="btnDownload" class="hide"></a>

6、js方法实现

<script language="javascript">
    // 获取按钮id
    var btnSave = document.getElementById("down");

    // 获取内容id
    var content = document.getElementById("test");
    // 进行canvas生成
    btnSave.onclick = function(){
        html2canvas(content, {
            onrendered: function(canvas) {

                //添加属性
                canvas.setAttribute('id','thecanvas');
                //读取属性值
                //document.getElementById('canvas').innerHTML = '';
                document.getElementById('canvas').appendChild(canvas);

                // 将图片转成base64格式
                var img = canvas.toDataURL("image/jpeg", 1.0); // toDataUrl可以接收2个参数,参数一:图片类型,参数二: 图片质量0-1(不传默认为0.92)
                downBaseImg(img)
                // console.log(img)
                // document.getElementById('base64Img').setAttribute("src", canvas.toDataURL("image/jpeg", 1.0)) // 将base64格式图片显示到页面上
            }
        });
    };
    var btnDownload = document.getElementById("btnDownload");

    var MIME = {
        "application/x-zip-compressed": "zip",
        "application/javascript": "js",
        "text/css": "css",
        "text/plain": "txt",
        "text/html": "html",
        "text/xml": "xml",
        "image/png": "png",
        "image/jpeg": "jpeg",
        "image/gif": "gif",
        "image/svg+xml": "svg"
    };
    //文件名默认当前时间戳
    function downBaseImg(base, name = '下载') {
        var fname = name + "." + MIME[getContentType(base)];
        var blob = getBlob(base);

        if (navigator.msSaveBlob) {
            navigator.msSaveBlob(blob, fname);
        }
        else {
            btnDownload.download = fname;
            btnDownload.href = URL.createObjectURL(blob);
            btnDownload.click();
        }
    }
    /**
     * 获取Blob
     * @param {stirng} base64
     */
    function getBlob(base64) {
        return b64toBlob(getData(base64), getContentType(base64));
    }

    /**
     * 获取文件类型
     * @param {string} base64
     */
    function getContentType(base64) {
        return /data:([^;]*);/i.exec(base64)[1];
    }

    /**
     * 获取base64中的数据
     * @param {string} base64
     */
    function getData(base64) {
        return base64.substr(base64.indexOf("base64,") + 7, base64.length);
    }

    /**
     * base64转Blob
     * @param {string} b64Data
     * @param {string} contentType
     * @param {number} sliceSize
     */
    function b64toBlob(b64Data, contentType, sliceSize) {
        contentType = contentType || '';
        sliceSize = sliceSize || 512;

        var byteCharacters = atob(b64Data);
        var byteArrays = [];

        for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
            var slice = byteCharacters.slice(offset, offset + sliceSize);

            var byteNumbers = new Array(slice.length);
            for (var i = 0; i < slice.length; i++) {
                byteNumbers[i] = slice.charCodeAt(i);
            }

            var byteArray = new Uint8Array(byteNumbers);

            byteArrays.push(byteArray);
        }

        var blob = new Blob(byteArrays, { type: contentType });
        return blob;
    }
</script>

Snipaste截图软件的下载和使用(日常常用的一些功能) 文章目录前言一、如何安装二、如何使用1.开始截图2.快速复制截图3.快速将截好的图缩小4.可同时进行多个截图放在一边5.获取截图中的rgb格式颜色或16进制HEX来表示颜色6.其他总结 前言 强烈推荐这款截图软件Snipaste,这里简单讲到了该软件的安装和使用。 一、如何安装 官网下载地址:https://zh.snipaste.com/ 1、进入官网就可以看到这样,在此我的电脑是win10 64位的,所以选择这个下载,大家根据自己的电脑是几位的自选选择下载。2、接着下载下来的是一个压缩包,解压即可。 阅读详情

相关推荐

Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg

Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg

w091253的博客 2379

html - 页面内的某个区域(div)进行截图

前置条件: html2canvas.min.js html2canvas(document.getElementById('要截图区域的divId'),{ backgroupColor: "transparent", allowTaint: true }).then((canvas)=>{ var a = document.createElement("a"); a.href = canvas.toDataUrl("image/jpg"); a.download = "生成的图片名称";

weixin_48438454的博客 2025

Selenium+Chrome自动化下载网页截图

本文介绍了如何使用Selenium库自动化下载网页截图的过程。通过编写Python代码,设置ChromeDriver和Chrome浏览器选项,实现了对指定URL的访问和截图保存功能。文中详细阐述了代码的整体架构流程、技术细节以及异常处理机制,帮助读者理解如何利用Selenium进行网页截图。

weixin_46153372的博客 757

js下载base64文件

$scope.base64ToBlob = function(code) { var parts = code.split(';base64,'); var contentType = parts[0].split(':')[1]; var raw = window.atob(parts[1]); var rawLength = raw.length; var uInt8Array = new Uint8Array(rawLe.

b422761838的专栏 5171

vue+elementUI实现网页截图及下载功能

1、npm install html2canvas //下载包 2、import html2canvas from "html2canvas" //导入包 3、html页面 <el-button type="primary" @click="clickGeneratePicture">截图</el-button> //按钮 //需要截图的区域 <d...

涩的博客 2896

掌握百度下载及QQ截图软件使用

QQ截图软件的主界面设计简洁直观,用户可以快速上手。界面顶部是菜单栏,提供文件、编辑、视图、工具、帮助等常用操作选项。菜单栏下方是功能区,包含了各种截图模式以及截图后的快速编辑选项。主界面中央是预览区,截图后的图像将在这里显示,用户可以在此进行进一步的标注或编辑。右侧是工具栏,其中包含各种标注和编辑工具,如箭头、文字、高亮、矩形、椭圆、画笔等。底部是状态栏,显示当前软件的状态信息,例如截图时间、文件大小等。矩形和椭圆形标注工具:用于绘制矩形和椭圆形框,适合标注图片中的主要部分。

weixin_36364707的博客 382

html2canvas截图并且下载

Document

qq_43677987的博客 1716

base64.min.js

前端base64编码插件。 // 编码: Base64.encode() //解码 Base64.decode();

PixPin—— 高效截图工具的下载与使用攻略

在日常的工作和学习中,一款好用的截图工具能极大地提高我们的效率。今天就来给大家介绍一款功能强大的截图工具 ——PixPin。

m0_62890527的博客 8072

base64.js下载(很全的方法)

base64.js文件是前段插件很好的运用js技术

c#div标签截图

可实现div标签下所有内容截图,可文字、图片都可以,非常实用

如何设计能吸引下载的截图以及注意事项

它可以是屏幕截图中指向下一个的箭头,也可以是指向“获取”按钮的字符,或者是两者的组合。您已经完成了必要的关键字研究,知道人们在寻找什么,因此在选择屏幕截图中包含的内容时使用相同的思维方式应该不难。这就是为什么它们是您最有价值的工具,可以让正在查看您的应用的人了解它能为他们做什么。但是,如果您从本文中学到一件事,那就是不要做什么,因为就像上面的内容有可能提高您的转化率一样,而做这些事情肯定会损害它。如果您实施了上述技巧,您的优化工作就已大功告成了,如果您做得好,您可以期待转化率和下载量的增长。

柚鸥ASO优化服务商 4977

Base64的js插件

单纯分享,导入时别忘了导入jquery(文件中我也附带jquery-1.11.0.min的js)

vue点击按钮自动截图并下载

文章目录问题描述代码实现 问题描述 vue中点击按钮自动截图并下载图片点击一个按钮,截取对应区域的界面,才对截取的界面进行裁切并下载 代码实现 1、npm install html2canvas //下载包 2、import html2canvas from "html2canvas" //导入包 components: { html2canvas }, 3.vue页面 ** ref="faultTree是你需要截图的部分** <el-button type="primary" @cl

weixin_44578496的博客 1983

本地化处理base64.min.js[可运行源码]

本文详细介绍了在现代Web开发中如何本地化处理base64.min.js文件,以提高网页性能和用户体验。首先,从官方网站或其他可信来源下载base64.min.js文件,然后创建一个新的HTML文件并引入这些JavaScript文件。接着,使用工具如Webpack、Browserify或Babel进行本地化处理,包括安装Babel CLI和相关插件,配置.babelrc文件,最后转换JavaScript文件。通过以上步骤,可以成功实现JavaScript文件的本地化处理。

4相5线步进电机驱动原理

步进电机驱动

while(1) 3万+

Leaflet框选截图 网页框选截图 -- 类似QQ截图功能

Leaflet框选载图 网页框选载图 -- 类似QQ载图功能功能需求搜索资源功能拆分进阶功能结束语 实现截图(红框中即是将要截取的内容) 下载到本地的截图 功能需求 近日。 项目中有一需求:在Leaflet地图中进行框选载图,同时把地图中的所有标记和图形一同载图,并下载到本地。 搜索资源 在网上搜索了一下,找到一个载图的js库 html2canvs。网上的大部分例子都是基于html2can...

chysxslt的博客 3184

【算法】基于STM32的MPU6050卡尔曼滤波算法(入门级)

1. 简介 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。详情见:卡尔曼滤波简介 MPU6050的解算主要有三种姿态融合算法:四元数法 、一阶互补算法和卡尔曼滤波算法。我们常用的DMP库使用的是四元数法,本文采用卡尔曼滤波算法,使用RT-Thread国产操作系统,利用env工具进行串口、模拟IIC环境配置,使用10ms的线程进行卡尔曼滤波解算。 2.

weixin_44549777的博客 3万+

RN截图并且下载问题

神奇的BUG一大堆。 需求--》截图并且下载图片 实现: import ViewShot from "react-native-view-shot"; CameraRoll 经验: 在截图的View里面 不允许存在旋转的View 否则会存在有什么String。double啥的 转载于:https://www.cnblogs.com/allenxieyus...

weixin_30595035的博客 213

SAP MTO模式实战:从库存管理到成本核算的深度解析

本文深入解析SAP MTO(Make-to-Order)模式在制造业中的应用,从库存管理到成本核算的全流程实战技巧。通过对比MTS模式,详细阐述MTO的核心逻辑、库存管理配置、成本核算路径及与PP模块的集成要点,帮助企业实现按单生产的高效管理,优化库存水平和资金占用。

weixin_29204205的博客 709

手把手教你用Cadence Virtuoso仿真一个5GHz CMOS分频器:从原理图到后仿,避开那些教科书上没写的坑

本文详细介绍了在Cadence Virtuoso环境中设计5GHz CMOS分频器的完整流程,从原理图设计到后仿真优化,特别关注实际工程中容易被忽视的关键问题。内容涵盖分频器核心指标解析、锁存器拓扑选择、接口设计匹配以及后仿真优化策略,为射频集成电路设计提供实用避坑指南。

weixin_26934905的博客 262

录屏截图工具推荐 | PixPin 高效截图工具的下载与使用攻略,PixPin截图工具下载安装与实战操作

它不仅拥有截图、贴图、标注的主要功能,还加入了需求极高的截图 OCR文本识别、滚动屏幕长截图、截动图 (录制 GIF 动图) 等功能,成为新的截图软件神器之一。编辑文档或制作教程时,需频繁引用截图,以往要反复找文件插入,有了 PixPin,截取的图像能直接 “贴” 在其他窗口,方便随时对照查阅,工作效率直线上升。另外,PixPin 的 OCR 文字识别功能可从截图提取文字,处理扫描文档或无法复制文字的网页时,这个功能有很大的用处。标注功能丰富,提供文本框、箭头、画笔、形状、线条等工具,轻松对图片进行标注。

goodfat的博客 1079

YOLOv10改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度

本文记录的是基于蒙特卡罗注意力(MCAttn)模块的YOLOv10目标检测改进方法研究。利用提高的跨尺度特征提取能力,使模型能够更好地传递和融合提取的多尺度特征,提高对小目标的关注度。Exploiting Scale-Variant Attention for Segmenting Small Medical Objects使用一种基于随机采样的池化操作来生成尺度无关的注意力图。它从三个不同尺度(3×33×33×3、2×22×22×2和1×11×11×1,即池化张量)中随机选择一个1×11×11×1注意力图

Limiiiing的博客 2187
上一篇: 阿里云国内简单的短信验证
下一篇: Apache 配置webscoket证书(PHP)
Maybe I Simple
博客等级 码龄9年 36粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值