是这样写么,感觉写得很繁琐吶。。
来源:6-7 完成案例文字图片显示和变换
KD_35
2018-04-23 13:24:09
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>canvas图片</title> <style> *{ margin: 0; padding: 0; } .wrap{ margin-top: 200px; margin-left: 100px; } .left{ float: left; width: 300px; height: 200px; background-color: pink; text-align: center; padding-top: 100px; } .left input{ width: 200px; height: 20px; border-radius: 5px; outline: none; border: 1px solid black; margin-bottom: 10px; } canvas{background-color:lightblue; } </style> </head> <body> <div class="wrap"> <div class="left"> <form> <input type="text" name="" class="myname" placeholder="姓名"> <input type="text" name="" class="address" placeholder="地址"> <input type="text" name="" class="profession" placeholder="职业"> <input type="text" name="" class="slogan" placeholder="口号"> <input type="button" name="" value="生成名片" id="submit"> </form> </div> <canvas id="canvas" width="600px" height="300px">您的浏览器不支持canvas </canvas> </div> <script> var button=document.getElementById('submit'), list=document.getElementsByTagName('input'), myname=list[0], address=list[1], profession=list[2], slogan=list[3]; var str="请输入姓名",str1='请输入地址',str2="请输入职业",str3="请输入口号"; button.onclick=function(){ clearCanvas(); str=myname.value; str1=address.value; str2=profession.value; str3=slogan.value; str==""?str="请输入姓名":str=myname.value; str1==""?str1="请输入地址":str1=address.value; str2==""?str2="请输入职业":str2=profession.value; str3==""?str3="请输入口号":str3=slogan.value; upload(str,str1,str2,str3); } var upload=function(str,str1,str2,str3){ var canvas=document.getElementById('canvas'), context=canvas.getContext('2d'); context.save(); var linearGradient=context.createLinearGradient(100,180,500,180); var distancex=context.measureText(str).width*Math.sqrt(3)/2, distancey=context.measureText(str).width/2; linearGradient.addColorStop(0,'rgba(0,0,0,1)'); linearGradient.addColorStop(.5,'rgba(0,0,0,1)'); linearGradient.addColorStop(1,'rgba(0,0,0,.2)'); context.fillStyle=linearGradient; context.fillRect(100,100,400,100); context.beginPath(); var img=new Image(); img.src='http://climg.mukewang.com/59859f4d00014f1503000100.jpg'; img.onload=function(){ context.drawImage(img,20,0,90,100,100,100,100,100); } context.beginPath(); context.font="25px 黑体"; context.fillStyle="#fff"; context.textBaseline="top"; context.fillText(str,210,110); context.beginPath(); context.font="16px 黑体"; context.fillText(str1,210,150); context.beginPath(); context.fillText(str2,210,180); context.beginPath(); context.rotate(-Math.PI/6); context.fillText(str3,200+distancex,280+distancey);// context.restore(); } upload(str,str1,str2,str3); function clearCanvas(){ var canvas=document.getElementById('canvas'), context=canvas.getContext('2d'); context.clearRect(0,0,canvas.width,canvas.height); } //此处填充代码 </script> </body> </html>
1回答
怎么都被占用了呢
2018-04-23
经测试,效果是实现了的。在课程源码中有这个案例的代码,可以下载下来参考着优化一下自己的效果。
相似问题