效果图

代码

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>HTML5 Canvas印章</title>
 <script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.js"></script>
 <style>
    .div-relative{position:relative; color:#000; width:200px; height:200px} 
    .div-a{ position:absolute; left:0px; top:0px; width:200px; height:200px} 
 </style>
</head>
<body>
    <div style="margin:30px 200px;">
    <div style="margin:20px;">
        <div style="color:red;font-size:50px;text-align:center">XXX测试研究院办公室</div>
        <hr color="red">
        <div>
            <div style="font-size:30px;text-align:center">我院召开下半年工作布置会暨2021年优秀工作者表彰大会</div>
            <p style="text-indent: 2em;">5月11日下午,我院在报告厅召开工作布置会暨2021年优秀工作者表彰大会。院长XXX、党委书记XXXX、副院长XXX、XXX、党委副书记XXX、副院长XXX出席大会,大会由XXX书记主持。
            </p>
            <p style="text-indent: 2em;">    院长指出,下半年工作要做好“八大聚焦”:一、聚焦学科专业结构;二、聚焦队伍建设;三、聚焦综合实力,深化体制改革;四、聚焦立德树人;五、聚焦整合资源,加强产教融合;六、聚焦创新创业;七、聚焦国家战略;八、聚焦奋进之笔,集中力量办好大事。他希望全体员工要勇于担当、尽职尽责,把奋斗作为一种幸福。切实落实好工作部署,为建设应用型企业而努力奋斗。
            </p>
            <p style="text-indent: 2em;">    
            会上,XXX副院长通报了优秀员工工作情况。    接着,学院领导分别为获得2021年上半年的优秀工作者颁发奖励,一等奖一名、二等奖两名,三等奖五名。
            </p>
            <p style="text-indent: 2em;">
                最后让我们为优秀员工送上诚挚的祝福。
            </p>
        </div>
        <div class="div-relative" style="float:right;padding-right:100px;"> 
            <canvas id="canvas" width="200" height="200"></canvas>
            <div class="div-a" style="text-align:center;padding-top:95px;font-size:20px">院办公室<br>
                2021&nbsp;年&nbsp;5&nbsp;月&nbsp;11&nbsp;日</div>  
        </div>
    </div>
<script>
  // canvas绘制图像的原点是canvas画布的左上角
   var canvas = document.getElementById("canvas");
   var context = canvas.getContext('2d');
   drawText($("#textname").val());
   // 绘制圆形印章
   function drawText(companyName="XXX测试研究院") {
       // 清除画布法一
       context.globalAlpha=1;
       context.fillStyle="#ffffff";
       var text = "办公室";
       var companyName = companyName;

      // 绘制印章边框
       var width = canvas.width / 2;
       var height = canvas.height / 2;
       context.lineWidth = 5;
       context.strokeStyle = "#f00";
       context.beginPath();
       context.arc(width, height, 90, 0, Math.PI * 2);//宽、高、半径
       context.stroke();

       //画五角星
       create5star(context,width,height,25,"#f00",0);

        // 绘制印章名称
        context.font = '18px 宋体';
        context.textBaseline = 'middle';//设置文本的垂直对齐方式
        context.textAlign = 'center'; //设置文本的水平对对齐方式
        context.lineWidth=1;
        context.fillStyle = '#f00';
        context.save();
        context.translate(width,height+60);// 平移到此位置,
        context.scale(1,2);//伸缩要先把远点平移到要写字的位置,然后在绘制文字
        context.fillText(text,0,0);//原点已经移动
        context.restore();

        // 绘制印章单位
        context.translate(width,height);// 平移到此位置,
        context.font = '18px 宋体'
        var  count = companyName.length;// 字数
        var  angle = 4*Math.PI/(3*(count - 1));// 字间角度
        var chars = companyName.split("");
        var c;
        for (var i = 0; i < count; i++) {
           c = chars[i];// 需要绘制的字符          //绕canvas的画布圆心旋转
           if (i == 0) {
               context.rotate(5 * Math.PI / 6);
           } else{
               context.rotate(angle);
           }
           context.save();
           context.translate(66, 0);// 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
           context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
           context.scale(1,2);//伸缩画布,实现文字的拉长
           context.fillText(c, 0, 0);// 此点为字的中心点
           context.restore();
       }
       // 设置画布为最初的位置为原点,旋转回平衡的原位置,用于清除画布
       context.rotate(-Math.PI/6);
       context.translate(0-canvas.width/2,0-canvas.height/2);

       //绘制五角星
        /**
         * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上
         * rotate:绕对称轴旋转rotate弧度
         */
        function create5star(context, sx, sy, radius, color, rotato) {
            context.save();
            context.globalAlpha=1;
            context.fillStyle = color;
            context.translate(sx, sy);//移动坐标原点
            context.rotate(Math.PI + rotato);//旋转
            context.beginPath();//创建路径
            var x = Math.sin(0);
            var y = Math.cos(0);
            var dig = Math.PI / 5 * 4;
            for (var i = 0; i < 5; i++) {//画五角星的五条边
                var x = Math.sin(i * dig);
                var y = Math.cos(i * dig);
                context.lineTo(x * radius, y * radius);
            }
            context.closePath();
            context.stroke();
            context.fill();
            context.restore();
        }
    }
</script>
</body>
</html>

H5组件Canvas画电子印章相关推荐

  1. 利用H5的canvas画一个时钟

    学习了一周的canvas了,看了一些资料和视频,跟着视频也画了一些统计图和圆,矩形,线之类的,跟着视频也做了一个钟表,话不多说,直接上代码 canvas上套一个div盒子,作为钟表的背景 <di ...

  2. 新H5中用canvas画一个数字钟表

    此文章是参考以往大牛代码,在大牛代码基础上加以更改而成. 本人暂时还是一名技术菜鸟,刚刚踏上web前端这条路才五个月,希望大牛们多多提携... 效果图如下: 话不多说,上代码: <body st ...

  3. 前端H5使用canvas画爱心以及笑脸

    目录 canvas简介 画爱心 效果 画笑脸 效果 结语 canvas简介 canvas是HTML5中推出的新功能,可以在页面上生成一个画布,使用js可以在画布上绘制一些图形. 画爱心 画爱心我们需要 ...

  4. 如何用h5标签canvas画柱状图【立体】

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  5. HTML5 Canvas 画虚线组件

    前段时间由于项目需要,用到了HTML5 Canvas画图,但是没有画虚线的方法,自己写了一个HTML5 画虚线的组件. dashedLine.js 1 if (window.CanvasRenderi ...

  6. H5 canvas 画圆 画圆角

    canvas是H5的一大重点 我们来学一下如何用canvas画圆 画圆 arc(x,y,r,起始弧度,结束弧度,顺逆时针) x,y就是这个圆的圆心坐标 r是圆的半径 弧度单位用Math.PI 顺逆时针 ...

  7. 使用H5的Canvas,实现证件照的识别

    使用H5的Canvas,实现证件照的识别 需求:实现证件照上传时,提示用户证件照是否合法. 思路:在用户上传的照片上取三个像素点,判断像素点是否符合证件照的特点 项目中用到了element-plus中 ...

  8. php开发h5游戏,H5的canvas实现贪吃蛇小游戏

    这次给大家带来H5的canvas实现贪吃蛇小游戏,H5的canvas实现贪吃蛇小游戏注意事项有哪些,下面就是实战案例,一起来看一下. 本文介绍了H5 canvas实现贪吃蛇小游戏,分享给大家,具体如下 ...

  9. canvas画简单的横向流程图

    开发思路 最近,因为在做基于MES系统进行工业互联网开发的项目:其中,在做demo时,我负责工序管理的开发,其中有一个功能是通过一个物料SFC码可以追踪该物料所经历的所有工序:网上有很多插件,比如D3 ...

最新文章

  1. 鸿蒙之初的彩蛋,扎导透露,《正义联盟》的最后一个镜头,有个隐秘的彩蛋
  2. 人工智能推动全球业务的数据中心管理
  3. 成本速度定成败 四种宽带接入技术大比拼(1)
  4. 第一章 基础设施,1.3 阿里视频云ApsaraVideo是怎样让4000万人同时狂欢的(作者:蔡华)...
  5. 乱序图片 极验_极验验证吴渊:传统图片验证方式已经无效了!
  6. vue3.0 word导出
  7. Codeforces Round #222 (Div. 1) D. Developing Game 扫描线
  8. 推荐:dhtmlx系列js工具包
  9. Windows下生成ssh密钥,并用ssh免密访问Linux服务器
  10. (转帖)SpringBoot自定义Starter
  11. 思科模拟器配置-生成树协议与链路聚合负载均衡
  12. linux网络编程常用头文件总结
  13. 如何将土豆优酷视频插入到自己网站里
  14. 一寸光阴一寸金,寸金难买寸光阴、时间就是生命,浪费时间就是慢性自杀。
  15. 【淘宝API开发系列】获取商品详情,商品评论、卖家订单接口
  16. Apollo学习笔记(19)UKF
  17. ai如何做倒角和圆角_在ai中怎么用小白工具把矩形的直角改成圆角?,你值得一看的技巧...
  18. 迅雷高速下载免安装 Kali Linux
  19. Android系统Camera图片反转的一个问题
  20. 台式机CentOS7安装GitLab11.10.4搭建(5)Mac通过终端安装VNC

热门文章

  1. 由浅入深分布式(5)dubbo提供者用内网地址注册provider以及 spring boot admin client用主机名注册spring boot admin server
  2. 在线文字生成音频工具
  3. 计算机专业男生好撩吗,撩男生很甜很撩的句子 一撩一个准
  4. 自然辩证法问题思考范围(开卷可用)
  5. 计算机专业对于未来的规划,对所学专业的认识及对未来的规划.doc
  6. 搭建k8s集群完整流程,云服务器、虚拟机均可参考
  7. 计算机系高考激励的句子,高考激励人心的句子
  8. Android 听筒扬声器切换 并且监听音量变化
  9. 一起弄个微信订阅号鉴黄机器人
  10. AB实验平台在贝壳找房的设计与实践