canvas,html2canvas等合成图片不清晰问题
function pxRa(cxt) {
var backingStore = context.backingStorePixelRatio ||
context.webkitBackingStorePixelRatio ||
context.mozBackingStorePixelRatio ||
context.msBackingStorePixelRatio ||
context.oBackingStorePixelRatio ||
context.backingStorePixelRatio || 1;
return (window.devicePixelRatio || 1) / backingStore;
};
此方法是获取设备与canvas一个适合的比例,具体也不知道怎么表达,剧烈来说,设计稿是640,放在iphone 5、6 ,这个值就是2, 电脑满屏就是1, 6plus 3 等等;
根据这个值去对canvas 进行 方法,缩大放小。
这是img的 图,
下面这是 canvas 画出来的图
是不是看上去很清晰,跟原图没有什么区别区别
代码 合图 如下:
var w = $(".container").width();
var h = $(".container").height();
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
var ra=getPixelRatio(context);
console.log(ra);
canvas.width = w * ra;
canvas.height = h * ra;
<!-- canvas.style.width = w + "px"; -->
<!-- canvas.style.height = h + "px"; -->
//然后将画布缩放,将图像放大两倍画到画布上
context.scale(2, 2);
html2canvas(obj).then(function(canvas) {
var copyStr = canvas.toDataURL("image/png", 0.92);
$('.complex-img').attr('src', copyStr);
<!-- document.body.appendChild(img); -->
});
最新文章
- Linux C Programing - Terminal(1)
- JavaScript-遍历数组
- wp7 中 HubTile控件自定义大小。
- TYVJ P1070 罗马数字 Label:一定要看的枚举
- Sublime Text 3083破解/汉化
- 学习总结 JDBC
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.1创建虚拟机
- RC2加密算法
- C语言内存对齐(2)
- 用 Docker Machine 创建 Azure 虚拟主机
- vsftpd详解(ubuntu)
- activemq+Zookeper高可用集群方案配置
- LeetCode 上最难的链表算法题,没有之一!
- TableView+Button
- python 可迭代对象 迭代器 生成器总结
- nginx——优化 Nginx 连接超时时间
- Golang面向过程编程-函数
- Linux中如何安装RAR
- 译 5. Spring使用JDBC访问关系数据
- 设置User Agent