开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1529|回复: 39
收起左侧

[Web源码] 印章生成

[复制链接]
结帖率:100% (1/1)
发表于 2024-8-13 09:55:44 | 显示全部楼层 |阅读模式   广东省深圳市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 kike 于 2024-8-13 10:02 编辑

[HTML] 纯文本查看 复制代码
<!doctype html>
<html lang="en">
<head>
<meta charset="GBK">
<title></title>
</head>
<body>
<p style="display:none;">
<canvas id="canvas" width="300" height="300"></canvas>
</p>
<script>
var canvas = document.getElementById("canvas");  
var context = canvas.getContext('2d');
var text = "";//业务专用章
var companyName = "揭阳市揭东区精易科技有限公司";
// 绘制印章边框
var width = canvas.width / 2;
var height = canvas.height / 2;
context.lineWidth = 5;
context.strokeStyle = "#FF0000";
context.beginPath();
context.arc(width, height, 100, 0, Math.PI * 2);//宽、高、半径
context.stroke();
//画五角星
create5star(context,width,height,25,"#FF0000",0);
 // 绘制印章名称
 context.font = '20px 宋体';
 context.textBaseline = 'middle';//设置文本的垂直对齐方式
 context.textAlign = 'center'; //设置文本的水平对对齐方式
 context.lineWidth=1;
 //context.strokeStyle = '#FF0000';
 //context.strokeText(text,width,height+60);
 context.fillStyle = '#FF0000';
 context.fillText(text,width,height+60);
 // 绘制印章单位
 context.translate(width,height);// 平移到此位置,
 context.font = '24px 宋体'
 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;// 需要绘制的字符
 if (i == 0) {
  context.rotate(5 * Math.PI / 6);
 } else{
  context.rotate(angle);
 }
 context.save();
 context.translate(100-20, 0);// 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
 context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
//context.strokeText(c, 0, 0);// 此点为字的中心点
 context.fillText(c, 0, 0);// 此点为字的中心点
 context.restore();
}
//绘制五角星  
/** 
* 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上 
* rotate:绕对称轴旋转rotate弧度 
*/
 function create5star(context, sx, sy, radius, color, rotato) {
context.save();
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>

<script>
window.onload = function () {
var drawing = document.getElementById('canvas')
//确定浏览器支持<canvas>元素
if (drawing.getContext) {
var context = drawing.getContext('2d')
console.log(context)
//取得图像的数据 URI
var imgURI = drawing.toDataURL("image/png");                
//显示图像
var image = document.createElement("img");
image.src = imgURI;
document.body.appendChild(image);
         var testspan=document.getElementById('span');
testspan.innerText="<p>"+imgURI+"</p>";
}
}
</script>
<span style="display:none;" id="span"></span>
</body>
</html>

点评

要支持章的大小调节 和支持印章的老化设置阈值等   浙江省杭州市  发表于 2024-8-13 11:22
其实是论坛的问题,自动把[x]变成<x>   广东省佛山市  发表于 2024-8-13 10:46
第43行 c = chars<i> 改成 c = chars[i]   安徽省黄山市  发表于 2024-8-13 09:59

评分

参与人数 2精币 +3 收起 理由
kyo9766 + 1 感谢分享,很给力!~
qq73s5456 + 2 支持开源~!感谢分享

查看全部评分


签到天数: 1 天

发表于 2024-9-10 17:30:58 | 显示全部楼层   内蒙古自治区阿拉善盟
不错不错不错不错不错不错不错不错不错不错不错不错不错
回复 支持 反对

使用道具 举报

发表于 2024-8-29 17:16:36 | 显示全部楼层   广东省云浮市

支持下  随便收藏了
回复 支持 反对

使用道具 举报

结帖率:0% (0/5)
发表于 2024-8-28 22:31:21 | 显示全部楼层   辽宁省丹东市
  感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 9 天

发表于 2024-8-15 06:21:09 | 显示全部楼层   陕西省西安市
开源精神必须支持~
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2024-8-14 16:14:12 | 显示全部楼层   广东省深圳市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 12 天

发表于 2024-8-14 14:54:04 | 显示全部楼层   北京市北京市
面向监狱编程?
回复 支持 反对

使用道具 举报

结帖率:73% (8/11)

签到天数: 21 天

发表于 2024-8-14 10:15:12 | 显示全部楼层   河南省焦作市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:78% (7/9)

签到天数: 15 天

发表于 2024-8-14 09:25:24 | 显示全部楼层   辽宁省沈阳市
可以  这创意不错
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 19 天

发表于 2024-8-14 09:25:05 | 显示全部楼层   广西壮族自治区玉林市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表