代码拉取完成,页面将自动刷新
同步操作将从 sohucw/tool-box 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>前端生成海报</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
.view {
width: 375px;
height: 667px;
position: relative;
color: #FFFFFF;
text-align: center;
font-size: 20px;
background: #4044ff;
}
.title {
width: 100%;
font-size: 30px;
position: absolute;
top: 50px;
left: 50%;
transform: translateX(-50%);
}
.content {
width: 100%;
font-size: 16px;
position: absolute;
top: 100px;
left: 50%;
transform: translateX(-50%);
}
.result {
width: 375px;
height: 667px;
}
.result>img {
width: 100%;
height: 100%;
}
.btn {
padding: 10px;
}
button {
padding: 6px 10px;
background: #31f111;
border: none;
}
</style>
<script src="https://cdn.bootcdn.net/ajax/libs/html2canvas/1.4.1/html2canvas.js"></script>
</head>
<body>
<div class="btn">
<button onclick="saveFile()">保存海报</button>
<button onclick="drawImage()">生成图片</button>
</div>
<div id="capture" class="view">
<div class="title">海报标题:大伟聊前端</div>
<div class="content">
<p>海报内容</p>
<p id='dawei'>大伟聊前端</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
<p>前端训练营</p>
</div>
</div>
<br>
<hr>
<div id="result" class="result"></div>
<script>
//保存图片
function saveFile() {
// devicePixelRatio 返回当前显示设备的物理像素分辨率与CSS 像素分辨率之比。
// 此值也可以解释为像素大小的比率:一个CSS 像素的大小与一个物理像素的大小。
// 简单来说,它告诉浏览器应使用多少屏幕实际像素来绘制单个CSS 像素
// https://developer.mozilla.org/zh-CN/docs/Web/API/Window/devicePixelRatio
let dpi = window.devicePixelRatio || 2
let options = {
useCORS: true, // 使用跨域
ignoreElements: (ele) => {
if(ele.id==='dawei') {
return true
}
},
scale: dpi //设置默认值 提高图片分辨率
};
html2canvas(document.querySelector("#capture"), options).then(canvas => {
// document.body.appendChild(canvas)
canvas.toBlob(function (blob) {
downloadBob(blob);
});
});
}
//生成图片
function drawImage() {
let dpi = window.devicePixelRatio || 2
let options = {
useCORS: true,
ignoreElements: false,
scale: dpi //设置默认值 提高图片分辨率
};
html2canvas(document.querySelector("#capture"), options).then(canvas => {
let url = canvas.toDataURL('image/png') // 将canvas转成base64图片格式
document.querySelector('#result').innerHTML = `<img src="${url}" alt="大伟聊前端" />`
});
}
// 下载不了的 生成图片长按保存
function downloadBob(blob) {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = '大伟聊前端.png';
a.href = url;
a.download = filename;
a.click();
// 当图片文件加载完成,释放这个url
window.URL.revokeObjectURL(url);
}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。