canvas合成文字以及对文字进行换行处理

桃扇骨 2023-03-13 03:22 89阅读 0赞

代码已上传至github
github代码地址:https://github.com/Miofly/mio.git

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
  6. <meta http-equiv=X-UA-Compatible content="ie=edge">
  7. <meta name=apple-mobile-web-app-capable content=yes>
  8. <meta name=apple-touch-fullscreen content=yes>
  9. <meta name=apple-mobile-web-app-status-bar-style content=black-translucent>
  10. <meta name=format-detection content="telephone=no">
  11. <meta name=format-detection content="email=no">
  12. <meta name=renderer content=webkit>
  13. <meta name=screen-orientation content=portrait>
  14. <meta name=x5-orientation content=portrait>
  15. <meta name=x5-fullscreen content=true>
  16. <meta name=full-screen content=yes>
  17. <meta name=keywords content="">
  18. <meta name=description content="">
  19. <meta http-equiv=Content-Type content="text/html; charset=utf-8">
  20. <title>Title</title>
  21. <link rel="stylesheet" type="text/css" href="http://localhost:8888/mio/src/html/index.css"/>
  22. <script type="text/javascript" src="http://localhost:8888/mio/src/html/js/common/vue.js"></script>
  23. <script type="text/javascript" src="http://localhost:8888/mio/src/html/js/common/jquery-1.7.2.min.js"></script>
  24. <script type="text/javascript" src="http://localhost:8888/mio/src/html/js/common/htmlToolUtils.js"></script>
  25. <script>
  26. (function (doc, win) {
  27. var docEl = doc.documentElement,
  28. resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
  29. recalc = function () {
  30. var clientWidth = docEl.clientWidth;
  31. if (!clientWidth) return;
  32. if (clientWidth >= 375) {
  33. docEl.style.fontSize = '100px';
  34. } else {
  35. docEl.style.fontSize = 100 * (clientWidth / 375) + 'px';
  36. }
  37. var html = document.getElementsByTagName('html')[0];
  38. var settedFs = settingFs = parseInt(100 * (clientWidth / 375));
  39. var whileCount = 0;
  40. while (true) {
  41. var realFs = parseInt(window.getComputedStyle(html).fontSize);
  42. var delta = realFs - settedFs;
  43. //不相等
  44. if (Math.abs(delta) >= 1) {
  45. if (delta > 0)
  46. settingFs--;
  47. else
  48. settingFs++;
  49. html.setAttribute('style', 'font-size:' + settingFs + 'px!important');
  50. } else
  51. break;
  52. if (whileCount++ > 100)
  53. break
  54. }
  55. };
  56. if (!doc.addEventListener) return;
  57. win.addEventListener(resizeEvt, recalc, false);
  58. doc.addEventListener('DOMContentLoaded', recalc, false);
  59. })(document, window);
  60. </script>
  61. </head>
  62. <body style="font-size: 0.05rem" class="bg-gradual-blue">
  63. <div id="app">
  64. <div id="imgOne"></div>
  65. </div>
  66. <script type="text/javascript" src="http://localhost:8888/mio/src/html/js/common/ewm.js"></script>
  67. <script type="text/javascript" src="http://localhost:8888/mio/src/html/js/common/canvas.js"></script>
  68. <script>
  69. var canvas = document.createElement('canvas')
  70. canvas.width = 750;
  71. canvas.height = 1334; // 这是canvas的宽高
  72. var ctx = canvas.getContext('2d')
  73. ctx.fillStyle = 'red' // 设置文字的填充颜色
  74. ctx.font = "50px serif";
  75. var row = [];
  76. row.push(textCanvas('将关怀编织成一缕风/为妈妈轻舞飞扬/将祝福采集成一首诗/为妈妈轻轻吟唱/祝妈妈母亲节快乐/身体健康。', '/'));
  77. for (var b = 0; b < row.length; b++) {
  78. ctx.fillText(row[b], 50, 100 + b * 50);
  79. }
  80. convertCanvasToImage(canvas, $('#imgOne'))
  81. </script>
  82. </body>
  83. </html>

canvas合成文字换行处理

  1. function textCanvas(text, symbol) { // canvas文字换行
  2. var temp = "";
  3. var chr = text.split(symbol);
  4. for (var a = 0; a < chr.length; a++) {
  5. row.push(temp);
  6. temp = "";
  7. temp += chr[a];
  8. }
  9. return temp
  10. }

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读

    相关 staruml文字

    有两种方法开启分词支持 第一种 在编辑文本的时候在Format菜单中选择“Word Wrap” 在这个组件的属性中找到Format,找到“Word Wrap”选项,