var copyDom = document.querySelector('.fenxiang1');
var width = copyDom.offsetWidth;//dom宽
var height = copyDom.offsetHeight;//dom高
console.log(JSON.stringify(copyDom));
console.log(width);
console.log(height); var scale = 2;//放大倍数
html2canvas(copyDom, {
dpi: window.devicePixelRatio * 2,
scale: scale,
width: width,
heigth: height,             
              useCORS:true
}).then(function (canvas) { var dataURL = canvas.toDataURL(); console.log(dataURL); that.canvas = dataURL.split(',')[1]; $(".i-d-canvas").attr('src', dataURL); myApp.preloader.hide(); api.addEventListener({ name: 'longpress' }, function (ret, err) { ac5.open(); }); });
<div class="i-d-fenxiang-canvas" v-if="isfenxiang">
<div class="i-d-fenxiang-close" @click="closeBanner"><i class="iconfont iconguanbi"></i></div>
//要放canvas的img <img class="i-d-canvas" src=""> </div>

//要转化的弹窗开始
<!--分享弹窗开始-->
<div id="win" class="i-d-fenxiang fenxiang1">
<img
crossorigin="anonymous" class="i-d-fenxiang-pic" :src="fenxiang_pic" alt=""> <div class="i-d-fenxiang-box"> <div class="i-d-fenxiang-info"> <div class="i-d-fenxiang-info-name"> <i v-if="type==1" class="iconfont iconxiangqing-tm"></i> <i v-if="type==0" class="iconfont iconxiangqing-tb"></i> <i v-if="isbaoyou" class="iconfont iconxiangqing-baoyou"></i> {{name}} </div> <div class="i-d-fenxiang-price">现价:<span>¥{{yuan_price}}</span></div> <div class="i-d-fenxiang-quan"> <div class="i-d-fenxiang-quan-left"> <div>券</div> <div>{{quan}}</div> </div> <div class="i-d-fenxiang-quan-right"> 券后价:<span>¥{{xian_price}}</span> </div> </div> </div> <div class="i-d-fenxiang-right"> <div class="i-d-fenxiang-qrcord"> <!--<img class="i-d-fenxiang-qrcord-pic" :src="erweima" alt="">--> <div class="i-d-fenxiang-qrcord-pic" id="qrcode"></div> </div> <div class="i-d-fenxiang-qrcord-text">长按保存图片</div> <!--<button class="i-d-fenxiang-qrcord-btn">复制文案--> <!--</button>--> </div> </div> </div> <!--分享弹窗结束-->

用到的js:

<script src="http://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>

注:处理img生成canvas时如果不是本地图片会有跨域问题,解决方法:

1、添加useCORS:true属性;

2、给要生成canvas的DOM中包含的每一个<img>标签添加crossorigin="anonymous"属性;

3、确保你的图片CDN服务器支持CORS访问,也就是会返回Access-Control-Allow-Origin等响应头;

 

将html转化为canvas图片(清晰度高)的方法的更多相关文章

  1. JS快速获取图片宽高的方法

    快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...

  2. 转载:JS快速获取图片宽高的方法

    快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...

  3. canvas图片与img图片的相互转换

    最近在一个项目中,遇到了一个问题,需要把生成的canvas形式的二维码转换为图片,可以长按识别,保存等.查找了一些资料归纳总结了一些知识. 默认在jq库里进行,引入jquery.qrcode.min. ...

  4. 基于html2canvas实现网页保存为图片及图片清晰度优化

    一.实现HTML页面保存为图片 1.1 已知可行方案 现有已知能够实现网页保存为图片的方案包括: 方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含 ...

  5. 解决 canvas 绘图在高清屏中的模糊问题

    解决 canvas 绘图在高清屏中的模糊问题 为什么模糊 CSS 像素是一个抽象单位(1 px),浏览器根据某种规则将 css 像素转化为屏幕需要的实际像素值. 在高清屏之前,屏幕上显示一个像素点需要 ...

  6. canvas图片压缩,局部放大,像素处理

    直接上代码:(具体看注释) 需要引用jquery.min.js <!DOCTYPE html> <html lang="en"> <head> ...

  7. 导出HTML5 Canvas图片并上传服务器功能

    这篇文章主要介绍了导出HTML5 Canvas图片并上传服务器功能,文中通过实例代码给大家介绍了HTML5 Canvas转化成图片后上传服务器,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友 ...

  8. php 图片上传的公共方法(按图片宽高缩放或原图)

    写的用于图片上传的公共方法类调用方法: $upload_name='pic';$type = 'logo_val';$file_name = 'logo_' . $user_id .create_st ...

  9. css3圆形头像(当图片宽高不相等时)

    1.图片宽高相等,width:300px: height:300px; 把他变成宽高100px的圆形头像 img{width:100px; height:100px; border-radius:50 ...

随机推荐

  1. leetcode34. 在排序数组中查找元素的第一个和最后一个位置

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...

  2. python-函数2(调用)

    python-函数2(调用) 1.实参和形参调用 2.默认调用 3.参数驵调用 1.实参和形参调用 def test5(x,y): #形参 print(x) print(y) y=1 x=2 test ...

  3. .align 5 .MACRO .ENDM .word

    ARM的.align 5就是2的5次方对齐,也就是4字节对齐 .macro <name> {<arg_1} {,<arg_2>} … {,<arg_N>} 定 ...

  4. CentOS 7添加开机启动服务脚本

    一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins.service #设置jenkins服务 ...

  5. (极值点偏移问题的几种方案)已知$\dfrac{\ln x_1}{x_1}=\dfrac{\ln x_2}{x_2}$,求证:$x_1+x_2>2\text{e}$.

    第一个图适合在手机上操作(点击\(\checkmark\)显示/隐藏) 第二个图适合在电脑上操作(点击\(\checkmark\)显示/隐藏)

  6. Luogu P3170 [CQOI2015]标识设计 状态压缩,轮廓线,插头DP,动态规划

    看到题目显然是插头\(dp\),但是\(n\)和\(m\)的范围似乎不是很小.我们先不考虑复杂度设一下状态试试: 一共有三个连通分量,我们按照\(1,2,3\)的顺序来表示一下.轮廓线上\(0\)代表 ...

  7. SpringMVC @ModelAttribute详解

    被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用. 我们编写控制器代码时,会将保存方法独立 ...

  8. Python之网路编程之-互斥锁与进程间的通信(IPC)及生产者消费者模型

    一.互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理. 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行 ...

  9. 【react学习一】首先先create-react-app 配置less、sass

    1.安装初始化 npm create-react-app react-demo 2.安装初始化 npm run eject 3.配置sass / less cnpm i sass-loader nod ...

  10. iOS使用protobuf环境的配置

    配置protobuf需要HomeBrew工具或则是MacPort.如没有安装,则需要配置HomeBrew工具或则是MacPort. 步骤1(环境配置前的准备工作): 1:使用HomeBrew brew ...