一个很简单的小列子,直接贴代码,代码中都有注释,下面有demo链接。

<html>
<head><meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" /><script src="js/jquery.js"></script>
</head>
<body><!--需要合成图片,因为没法直接读取本地图片,所以将图片放在这里并隐藏--><div style="display:none"><img id="starImg" style="height:100%; width:100%;" src="img/invitation.png" /></div><!--画布--><canvas id="main" height="730" width="420" style="border:1px solid #d3d3d3;"></canvas><!--输入框,失去焦点后自动执行hechen()--><input type="text" id="desc" onblur="hechen()" value="" /><!--saveImageInfo()生成照片并显示到另个网页--><button onclick="saveImageInfo()">确认生成</button><script>//预加载将图片绘制到画布$(function(){hechen();});function hechen(){//获取时间2012-12-12var mydate = new Date();var date = mydate.getFullYear()+'-'+(mydate.getMonth()+1)+'-'+mydate.getDate();//获取画布对象var mainCtx = getCanvasContext('main');var maxWidth = mainCtx.width;var maxHeight = mainCtx.height;mainCtx.clearRect(0,0,1000,1000);//获取图片的实际路径var starImg = new Image();starImg.src=$('#starImg').attr('src');//合成starImg.onload=function(){//先把图片绘制在这里mainCtx.drawImage(starImg,0,0,420,730);//读取用户的文本if($('#desc').val()){//设置用户文本的大小字体等属性mainCtx.font = "small-caps bold 18px STXinwei";//设置用户文本填充颜色mainCtx.fillStyle = "black";//绘制文字mainCtx.fillText($('#desc').val(),108,335);//设置时间文本的大小字体属性mainCtx.font = "small-caps bold 16px STXinwei";//绘制时间mainCtx.fillText(date,326,447);}};}//通过id获取canvas对象function getCanvasContext(id){return document.getElementById(id).getContext("2d");}//将画布生成图片function saveImageInfo() {var mycanvas = document.getElementById("main");var image = mycanvas.toDataURL("image/jpg");var w=window.open('about:blank','image from canvas');w.document.write("<img src='"+image+"' alt='from canvas'/>");}//下载图片function saveAsLocalImage(){var myCanvas = document.getElementById("main");var image = myCanvas.toDataURL("image/jpg").replace("image/jpg", "image/octet-stream");window.location.href=image;}</script></body>
</html>

demo源码链接
上面那个积分现在变得太高了
百度云链接链接:https://pan.baidu.com/s/1monENQf9QSqWkNhbPQ7YxA 密码:7gro

H5网页Canvas画布绘图 图片文字合成相关推荐

  1. canvas图片文字合成(小程序分享)

    写这个的原因是在写一个小程序的需求的时候用到了,在此记录一下. 需求需要实现的点就是:在分享小程序个人资料页面的时候将个人信息和个人头像进行重叠放在一起然后分享出去,大概样子如下: 不同的用户头像不同 ...

  2. H5 canvas画布 字体图片模糊变清晰

    H5 canvas画布 字体图片模糊处理 <canvas id="canvas " width="386px" height="386px&qu ...

  3. jsjq来封装一个图片文字合成图案的方法

    记录一下:封装一个图片文字合成图案的方法 这里首先做个说明 项目里使用到用canvas生成海报,在toDataURL报了这个错误Tainted canvases may not be exported ...

  4. CANVAS drawImage 绘图图片模糊已解决

    CANVAS drawImage 绘图图片模糊解决 不可以在CSS中定死canvas画布的长宽, 在绘图时给出canvas宽高 具体JS代码: const canvas = document.getE ...

  5. html:canvas画布绘图简单入门-绘制时钟-3

    canvas示例系列: html:canvas画布绘图简单入门-1 html:canvas画布绘图简单入门-2 html:canvas画布绘图简单入门-绘制时钟-3 html:canvas画布绘图简单 ...

  6. html:canvas画布绘图简单入门-画板-5

    canvas示例系列: html:canvas画布绘图简单入门-1 html:canvas画布绘图简单入门-2 html:canvas画布绘图简单入门-绘制时钟-3 html:canvas画布绘图简单 ...

  7. vue上传图片加水印;js上传图片添加水印;vue给图片添加水印;canvas图片添加水印;canvas画布导出图片

    uni-app微信小程序图片加水印,点击看这篇 需求场景: 要求上传图片,并给图片添加水印.传给后端的也是有水印的图片. 逻辑步骤: 通过input上传图片,拿到图片的信息和base64,将图片绘制到 ...

  8. (H5)canvas实现裁剪图片和马赛克功能,以及又拍云上传图片

    1.核心功能 此组件功能包含: 图片裁剪(裁剪框拖动,裁剪框改变大小): 图片马赛克(绘制马赛克,清除马赛克): 图片预览.图片还原(返回原图.返回处理图): 图片上传(获取签名.上传图片). 2.核 ...

  9. java使用Graphics2D进行图片文字合成示例

    功能介绍:通过Graphics2D在一张背景图上添加文字描述和图片. 合成效果示意图: 代码示例: 在代码中对每步操作做了详细的注释 import java.awt.Color; import jav ...

最新文章

  1. C++显示转换、dynamic_cast重点
  2. 数据建模学习笔记-2-《高质量数据库建模 2-建模流程》
  3. VS 中配置使用Visual SVN系列 一:SVN Server下载和安装
  4. 线性Transformer应该不是你要等的那个模型
  5. 【转载】TCP和TCP/IP的区别
  6. php function 输出,PHP中常用的输出函数总结
  7. 改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了
  8. linux shell脚本备份mysql数据库
  9. mysql5.6忘记立马_MySQL 5.7 安装完成后,立即要调整的性能选项
  10. python续行_python 控制台单行刷新,多行刷新
  11. [转]几种图像处理类库的比较
  12. android设置view透明度渐变,android中 怎么实现一张图片从左到右透明度改变渐变消失的动画效果 Android 动态渐变 泽.. - 贪吃蛇学院-专业IT技术平台...
  13. bootdo框架中使用shiro控制的权限(bootstrap)
  14. 【无机纳米材料科研制图——OriginLab 0204】Origin细胞存活率柱状图绘制
  15. 打开catia界面全是白色怎么办_别输在细节上!CATIA零件表面写字技巧
  16. 二阶行列式求救二元线性方程组
  17. Github大盘点:2021年最惊艳的38篇AI论文
  18. 高版本node,无法编译程序,删除所有文件
  19. 深圳现货原装正品JST提供各种专为汽车市场而设的线束连接器PAP-12V-S PAP-13V-S PAP-10V-S PHR-9 PHR-10
  20. Gos —— 显示器控制

热门文章

  1. FileUpload的使用
  2. 关于“远程计算机或设备不接受连接”解决方法
  3. hbase的系统表、分裂、下载和上传
  4. think-cell 无法安装怎么解决丨安装教程丨解决方法
  5. traffic-filter
  6. “.plt“文件转png格式图片简写
  7. [javascript] 深入理解js闭包
  8. SSL1232雷达覆盖(normal)
  9. hibernate中mappedby的理解
  10. Hadoop简单集群搭建,三台虚拟机运行wordcount