<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正式邀请函</title>
<meta name=”description” content="">
<meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="full-screen" content="true" />
<meta name="screen-orientation" content="portrait" />
<meta name="x5-fullscreen" content="true" />
<meta name="360-fullscreen" content="true" />
<link rel="stylesheet" href="./assets/css/poster1.css?date=10">
</head>
<body>
<div class="operat">
<input id="name" type="text" placeholder="名字" maxlength="10">
<button class="submit-btn" onclick="drawImage()"></button>
</div>
<img id="imgbox1" src="./assets/images/poster/haibao1.jpg" alt="" style="width:37.5rem;height:81.2rem">
<div class="pic">
<canvas id="myCanvas" style="display: none;">
</canvas>
</div>
<script src="./assets/js/jquery.min.js"></script>
<script src="./assets/js/layout.js"></script>
<script src="./assets/js/index.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<!--cavans图片和文字截取生成一个img-->
<script>
// 绘制图片
function drawImage() {
var name = document.getElementById("name").value;
if(name){
// 当前html的font-size方便使用rem
var size = getComputedStyle(window.document.documentElement)['font-size'].split('p')[0]
var numSize = parseInt(size)
// //获取屏幕宽度用于canvas宽度自适应移动端屏幕
var clientWidth = getWidth();
var canvas = document.getElementById("myCanvas");
//由于手机屏幕时retina屏,都会多倍渲染,在此只设置2倍,如果直接设置等于手机屏幕,会导致生成的图片分辨率不够而模糊
canvas.width = 2*clientWidth;
canvas.height = 2*numSize*81.2;
var context = canvas.getContext("2d");
var imgbox1 = document.getElementById("imgbox1");
var src = "./assets/images/poster/haibao1.jpg";
var img = new Image();//创建图片对象,用于在canvas中渲染
img.src=src;
var w = 2*clientWidth;
//当图片加载成功以后再进行下一步动作,如果不加这句,会生成黑图
img.onload = function(){
// 绘制的 img 在 canvas 中的坐标 drawImage(img图片, x开始坐标, y开始坐标, 图片宽度, h图片高度)
context.drawImage(img, 0, 0, w, 2*numSize*81.2);
// 设置生成的文字的样式
var font = "600 " + 2*numSize*1.5 + "px " + '微软雅黑';
context.font = font;
context.textAlign = "center";
context.fillStyle = "#000";
context.fillText(name,2*numSize*10.5, 2*numSize*22);
var downloadImg = canvas.toDataURL("image/jpeg");
imgbox1.src = downloadImg;
alert('海报已生成,长按转发或者保存')
}
}else{
alert("请输入您的名字!");
}
}
// 获取屏幕宽度
function getWidth(){
if(window.innerWidth){
return window.innerWidth;
}
else{
if(document.compatMode == "CSS1Compat"){
return document.documentElement.clientWidth;
}
else{
return document.body.clientWidth;
}
}
}
</script>
</body>
</html>
*,body{
margin: 0;
padding: 0;
}
.operat input{
position: absolute;
top: 20rem;
left: 7.6rem;
width: 5rem;
height: 3rem;
line-height: 3rem;
text-align: center;
background: #f0f4fa;
border: solid 1px #f0f4fa;
font-size: 1.5rem;
font-weight: bold;
}
.submit-btn{
position: fixed;
width: 10.95rem;
height: 2.4rem;
bottom: 10rem;
right: 2rem;
background: url("../images/poster/btn.png") no-repeat;
background-size: 100% 100%;
border: 0px solid transparent;
z-index: 100;
}
图片分别是背景图和按钮图