javascript - Html2Canvas 截图清晰度
问题描述
用于截html2canvas
屏。并且该屏幕截图转换为图像并附在电子邮件中。
这些屏幕截图包括highcharts
. 有时 x 轴和 y 轴显示一些阴影效果。我怎样才能避免它?
var tempcanvas=document.createElement('canvas');
tempcanvas.width=2000;
tempcanvas.height=980;
var context=tempcanvas.getContext('2d');
context.imageSmoothingQuality = "High";
context.drawImage(canvas,0,0,1000,750);
var link=tempcanvas.toDataURL('image/png',1);
$scope.alert.message = link;
var blobBin = atob(link.split(',')[1]);
var array = [];
for(var i = 0; i < blobBin.length; i++) {
array.push(blobBin.charCodeAt(i));
}
$scope.file=new Blob([new Uint8Array(array)], {type: 'image/png'});
解决方案
愿这对你有所帮助
只需在使用 html2canvas 时设置 dpi 或比例选项,生成的画布应该具有您选择的 dpi/比例。
function myRenderFunction(canvas) {
destination.appendChild(canvas);
}
// Get source element and destination div.
var element = document.getElementById('element');
var destination = document.getElementById('destination');
// Normal html2canvas rendering.
html2canvas(element, {
onrendered: myRenderFunction
});
// With dpi: 144 (scale: 1.5).
html2canvas(element, {
dpi: 144,
onrendered: myRenderFunction
});
// With scale: 2 (dpi: 192).
html2canvas(element, {
scale: 2,
onrendered: myRenderFunction
});
推荐阅读
- javascript - 在一个 Blade.php 文件(laravel)中组合 2 个不同的脚本后,脚本不起作用
- javascript - 如何触发弹出窗口上的折叠切换按钮?
- java - Reg Ex 严格匹配以模式开头的单词
- reactjs - 如何在 React 组件中的函数之间传递道具
- php - 如何显示文件夹中的所有图像
- javascript - jquery mobile 使用 input -ul -li like a select 过滤动态结果
- microservices - 微服务如何在应用程序开发中必不可少
- azure - 将 Azure 自定义域重定向到外部域(Google 域)
- python - 如何在 QWidget 中对齐 QLineEdits?
- java - 如何将登录详细信息存储在 Android 的本地存储中