您当前位置:首页>项目技能>技能技巧

Pbootcms利用Canvas生成海报功能代码

发布时间:2022-11-21 阅读量:929 超级管理员

<!DOCTYPEhtml><html><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge&q···...

扫码分享二维码

二维码

详细介绍

上午增加了一个关于在Pbootcms如何利用Canvas生成海报功能的代码;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="baidu-site-verification" content="code-H2KLXl9AJA" />
  <title>Html5 Canvas生成海报功能代码-码云笔记</title>
</head>
<body>
<canvas id="myCanvas"></canvas>
<script type="text/javascript">
    var c = document.getElementById("myCanvas"); // 使用id来寻找canvas元素
    var cxt = c.getContext("2d"); // 创建context对象

    // 设置myCanvas的宽高
    c.width = 320; //设置myCanvas的宽
    c.height = 580; //设置myCanvas的高

    // 绘制一个矩形,用来做全局背景颜色
    cxt.fillStyle = "#fff"; // fillStyle方法将其染成红色
    cxt.fillRect(0,0,c.width,c.height); // fillRect方法是创建一个矩形,x坐标、y坐标、宽度、高度

    // 把图片绘制到myCanvas
    var img = new Image()
    img.src = "https://www.diebaoyun.com/static/upload/image/20211210/1639150303186346.jpg" // 图片路径

    // 为了防止图片还没加载完成就执行drawImage,需要延迟10ms再执行drawImage
    setTimeout(function(){
        cxt.drawImage(img,20,20,280,280);
    },10)

    // 绘制商品标题,自动换行
    cxt.fillStyle="#333";
    cxt.font = "15px bold 黑体";
    var str = "黑头去油除螨虫学生补水洁面乳【包邮】绘制截取部分"
    cxt.textBaseline = "middle";
    cxt.textAlign = "left";
    var lineWidth = 0;
    var canvasWidth = 280;//一行文字占用的宽度
    var initHeight=320;//绘制字体距离canvas顶部初始的高度
    var lastSubStrIndex= 0; //每次开始截取的字符串的索引
    for(let i=0;i<str.length;i++){ 
        lineWidth+=cxt.measureText(str[i]).width; 
        if(lineWidth>canvasWidth){  
            cxt.fillText(str.substring(lastSubStrIndex,i),20,initHeight);//绘制截取部分
            initHeight+=20; //20为字体的高度
            lineWidth=0;
            lastSubStrIndex=i;
        } 
        if(i==str.length-1){ //绘制剩余部分
            cxt.fillText(str.substring(lastSubStrIndex,i+1),20,initHeight);
        }
    }
    // 绘制券底部背景色
    cxt.fillStyle = "#afadaa"; // fillStyle方法将其染成红色
    cxt.fillRect(20,355,200,88); // fillRect方法是创建一个矩形,x坐标、y坐标、宽度、高度

    // 绘制价格
    cxt.fillStyle="#000";
    cxt.font = "normal bold 10px 黑体";
    var str_price = "券后价 ¥32.90"
    cxt.textBaseline = "middle";
    cxt.textAlign = "left";
    cxt.fillText(str_price,26,380);

    // 绘制二维码
    var qrcode = new Image()
    qrcode.src = "https://www.diebaoyun.com/images/8.png" // 二维码图片路径

    // 为了防止图片还没加载完成就执行drawImage,需要延迟10ms再执行drawImage
    setTimeout(function(){
        cxt.drawImage(qrcode,210,350,100,100);
    },10)
</script>
</body>
</html>

测试记录一下,方便日后使用。

上一篇 浏览器其它网站均可正常打开上网 唯独百度网页搜索无法正常打开
下一篇 PBOOTCMS网站文章内增加站内文章调用链接展示

内容版权声明

Copyright Notice

内容链接: https://www.diezanrpa.com/jinengjiqiao/218.html
内容标题: Pbootcms利用Canvas生成海报功能代码

当前文章由【付涛】本人原创开发与文案内容写作,内容版权归当前平台所有,如需转载,请务必注明来源及链接,谢谢合作!

本文最后更新发布于【2022-11-21】,某些文章具有时效性,若有错误或已失效,请联系客服

争议处理:针对本站内容若有异义,亦可直接与【法律顾问:易兴俊,律师联系电话:13825799821】直接联系沟通

GEO