来源:https://bbs.csdn.net/wap/topics/392154316?from=groupmessage
var triggerEvent = "touchstart"; //指定下载方式function saveAs(Url){var blob=new Blob([''], {type:'application/octet-stream'});var url = URL.createObjectURL(blob);var a = document.createElement('a');a.href = Url;a.download = Url.replace(/(.*\/)*([^.]+.*)/ig,"$2").split("?")[0];var e = document.createEvent('MouseEvents');e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);a.dispatchEvent(e);URL.revokeObjectURL(url);}var imgs = document.getElementsByTagName("img");for(var i = 0,o;o = imgs[i];i++){o.addEventListener(triggerEvent,function(){var url = this.getAttribute("src");saveAs(url);},false);}
<!-- js截屏plugin -->
<script type="text/javascript" src="/h5/screencapture/html2canvas.min.js"></script>
<script type="text/javascript" src="/h5/screencapture/canvas2image.js"></script>
<script type="text/javascript">
function convert2canvas() {

    var cntElem = $('#content')[0];

    var shareContent = cntElem;//需要截图的包裹的(原生的)DOM 对象
    var width = shareContent.offsetWidth; //获取dom 宽度
    var height = shareContent.offsetHeight; //获取dom 高度
    var canvas = document.createElement("canvas"); //创建一个canvas节点
    var scale = 2; //定义任意放大倍数 支持小数
    canvas.width = width * scale; //定义canvas 宽度 * 缩放
    canvas.height = height * scale; //定义canvas高度 *缩放
    canvas.getContext("2d").scale(scale, scale); //获取context,设置scale 
    var opts = {
        scale: scale, // 添加的scale 参数
        canvas: canvas, //自定义 canvas
        // logging: true, //日志开关,便于查看html2canvas的内部执行流程
        width: width, //dom 原始宽度
        height: height,
        useCORS: true // 【重要】开启跨域配置
    };

    html2canvas(shareContent, opts).then(function (canvas) {

        var context = canvas.getContext('2d');
        // 【重要】关闭抗锯齿
        context.mozImageSmoothingEnabled = false;
        context.webkitImageSmoothingEnabled = false;
        context.msImageSmoothingEnabled = false;
        context.imageSmoothingEnabled = false; 
        
        // 【重要】默认转化的格式为png,也可设置为其他格式
        var img = Canvas2Image.convertToPNG(canvas, canvas.width, canvas.height);

        //document.body.appendChild(img);
        $("#content").css("display", "none");
        $(".img-container").append(img);
        $(img).css({
            "width": canvas.width / 2 + "px",
            "height": canvas.height  + "px",/// 2
        }).addClass('f-full');

    });

convert2canvas();
/* $(function(){
    document.querySelector("button").addEventListener("click", function() {
        var cntElem = $('#content')[0];
        var shareContent = cntElem;//需要截图的包裹的(原生的)DOM 对象
        var width = shareContent.offsetWidth; //获取dom 宽度
        var height = shareContent.offsetHeight; //获取dom 高度
        var canvas = document.createElement("canvas"); //创建一个canvas节点
        var scale = 1.98; //定义任意放大倍数 支持小数
        canvas.width = width * scale; //定义canvas 宽度 * 缩放
        canvas.height = height * scale; //定义canvas高度 *缩放
        canvas.getContext("2d").scale(scale, scale); //获取context,设置scale 
        var opts = {
            scale: scale, // 添加的scale 参数
            canvas: canvas, //自定义 canvas
            // logging: true, //日志开关,便于查看html2canvas的内部执行流程
            width: width, //dom 原始宽度
            height: height,
            useCORS: true // 【重要】开启跨域配置
        };
        html2canvas(shareContent, opts).then(function (canvas) {
            var src = canvas.toDataURL();
            var link = document.createElement('a');
            //设置下载的文件名
            link.download = '报告';
            link.style.display = 'none';
            //设置下载路径
            link.href = src;
            //触发点击
            document.body.appendChild(link);
            link.click();
            //移除节点
            document.body.removeChild(link);
        });
    }, false);

}); */
</script>

h5页面使用js实现保存当前图片到手机相册相关推荐

  1. uniapp移动app实现将网页保存为图片到手机相册

    项目中新增了一个需求,将页面保存为图片,且保存在相册中. Android端 运用到的技术点: html2canvas:将网页绘制base64的图片 plus.nativeObj.Bitmap:下载ba ...

  2. android禁止弹出保存此图片,安卓手机相册总是出现陌生图片?教你彻底清除!...

    原标题:安卓手机相册总是出现陌生图片?教你彻底清除! 各位小伙伴们在查看手机相册时,是否经常看见一些陌生图片呢?每次删除之后也还是会出现,这该如何解决?如果你也有这样的情况出现,可能是没有将手机中的这 ...

  3. 使用html2canvas完成页面截屏并保存为图片

    实现网页页面截屏,并且将其转换为指定图片格式保存下来,需要使用到html2canvas.js. 前面是实现原理和步骤分析,具体实现代码在文章尾部. 一.实现HTML页面截屏并保存为图片 原理是遍历需要 ...

  4. h5页面使用js实现图片上传(安卓用户也可拍摄、相册二选一)

    思路如下: 使用原生input标签实现图片上传时,如果你的写法是如下所示: <input type="file" id="upload_file" @ch ...

  5. 安卓手机微信H5中无法长按保存base64图片、blob形式图片的解决办法

    解决实现安卓[微信]H5长按无法保存和分享base64图片问题 问题产生原因,后台发来图片的base64编码有中有空格存在,而ios的WebView可以自动做处理,android则不能. **解决方法 ...

  6. 移动端h5页面软键盘弹出后 背景图片被顶上去

    移动端h5页面在软键盘弹出后,body的高度被压缩了,就导致原本高度100%的背景图被顶上去一截,需要把div的高度强行设回100%才能解决这个问题 <div class="app&q ...

  7. 微信小程序下载图片获取相册授权,保存视频或图片到手机相册

    单独建一个downloadfile.js,将方法导出: downloadfile.js文件: //downloadfile.js/*** 下载单个文件*/ function downloadFile( ...

  8. 安卓系列手机的H5页面背景色失效的问题(踩坑手机小米8)

    标题安卓系列手机的H5页面背景色失效的问题 今天做手机端,微信小程序开发,根据实际需求,手写一个遮罩层 页面开发完毕之后,进行真机测试,出现问题了,ios是好的 Android一款小米8就不行了 在打 ...

  9. java下载图片到手机相册_Unity保存图片到Android手机且更新相册

    Android 保存图片到设备 前言:在许多的应用或游戏中,大多都有保存图片或者截图等等的功能,这篇文档我们的目的是通过 Unity 保存图片,并且调用 Andorid 中的更新相册的原生方法. 流程 ...

最新文章

  1. hdoj-2039-三角形
  2. 【LeetCode】LC1408:一维数组的动态和
  3. 如何修改maven默认jdk配置
  4. Bootstrap4+MySQL前后端综合实训-Day08-AM【多表查询sql语句、关联数据的假删除、自动增长主键的获取、栏目管理“数据编辑”按钮的实现】
  5. Exif文件格式描述
  6. 【转发】实现yolo3模型训练自己的数据集总结
  7. svn mysql认证_SVN基于MySQL认证
  8. 向程序发送命令失败_java程序员进阶:Redis分布式技术问题集锦
  9. Discuz经典函数注释之authcode
  10. cloudcompare:怎么换背景颜色
  11. 读书 - 《许三观卖血记》
  12. 通过几道CTF题学习yii2框架
  13. 微信有什么办法可以让加人不频繁?
  14. 教师计算机基础知识考试,教师计算机基础知识考核方案.doc
  15. 表白套路计算机公式,高级表白密码我喜欢你公式 套路喜欢的人
  16. 怎么退出自适应巡航_吉利ICON ACC自适应巡航系统
  17. 计算机管理器里的WiFi不见了,怎么解决电脑突然搜不到wifi
  18. pycharm3.6.5安装不了cfg包(求解)
  19. go语言单元测试之三:go语言用goconvey库做单元测试
  20. minimap2论文算法详解(主要针对RNA-seq)

热门文章

  1. 赛效:怎么使用在线秒表
  2. vc下文件下载的两种方法
  3. 智能手机“逼迫”车载导航仪重新定义
  4. 仿Android版 天天动听
  5. 数据分析 - 分组统计查询
  6. 数字示波器采样频率 带宽 存储深度的理解
  7. 计算机b级excel题目,全国计算机等级考试一级B类(excel类)
  8. 计算机研究所混文凭的学校,能混文凭的研究生学校,考研难度最小的五所211
  9. getInfoByID
  10. L1-068 调和平均 - java