关于字符串(包含表情)通过canvas转图片的一些坑

阅读: 评论:0

关于字符串(包含表情)通过canvas转图片的一些坑

关于字符串(包含表情)通过canvas转图片的一些坑

1. 文字转canvas的换行问题

/**
思路:
* 利用canvas的measureText方法,在绘制字符串的过程中实时测量字符串内容是否超出canvas宽度,
* 	超出则重新绘制一行字符串
*/
function canvasTextAutoLine(str, canvas, initX, initY, lineHeight) {var ctx = Context("2d");var lineWidth = 0;var canvasWidth = canvas.width;var lastSubStrIndex = 0;ctx.font="26px Georgia";for (let i = 0; i < strArr.length; i++) {lineWidth += asureText(strArr[i]).width;if (lineWidth + allowance > canvasWidth - initX) { //减去initX,防止边界出现的问题ctx.fillText(str.subString(lastSubStrIndex, i), initX, initY);initY += lineHeight;lineWidth = 0;lastSubStrIndex = i;}if (i == strArr.length - 1) {ctx.fillText(str.subString(lastSubStrIndex, i+1), initX, initY);}}DataURL();}
let str = 'ce sadgkai 成为武汉 isacks非说的饭卡爱是否 i啊i 公司的啊师傅阿斯顿发lksdfksdja';let canvasDom = document.querySelector('#box');let initX = 20;let initY = 20;let lineHeightVal = 32;let allowance = 20; //canvas 右边边框余量let txtImgData = canvasTextAutoLine(str, canvasDom, initX, initY, lineHeightVal)

2. 图片清晰度问题

/**
* 思路:
*  canvas按照实际容器的两倍大小绘制,或者实际容器设置为canvas的1/2,由于生成的canvas高度是动态的,所以这里采取第二种方式,设置实际容器为canvas的1/2
* 
* /
<!--* @Author: wds* @Date: 2021-12-31 10:53:23* @LastEditors: wds* @LastEditTime: 2021-12-31 13:58:15
-->
<!DOCTYPE<

本文发布于:2024-01-28 05:00:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063892404967.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   表情   图片   canvas
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23