我正在使用以下函数,允许应用程序用户将文本插入到他们的画布照片中。当文本靠近边缘时,它会像预期的那样缩小,但如果文本大小不大于画布,则无法找到居中文本的方法。请看下面的代码:
我曾尝试过文本对齐,比如:
var canvas4 = document.getElementById("canvas4");
var ctx4 = canvas4.getContext("2d");
canvas4.width = $(window).width();
canvas4.height = $(window).height();
var txt = value,
tw,
oc, octx;
ctx4.font = '40px sans-serif';
ctx4.fillStyle = 'blue';
ctx4.textBaseline = 'top';
ctx4.globalAlpha = 0.50;
tw = ctx4.measureText(txt).width;
if (tw > canvas4.width - 20) {
oc = document.createElement('canvas');
octx = oc.getContext('2d');
oc.width = tw;
oc.height = parseInt(ctx4.font, 10) * 1.2;
octx.font = '40px sans-serif';
octx.textBaseline = 'top';
octx.fillText(txt, 0, 0);
ctx4.drawImage(oc, 10, canvas4.height - 100, canvas4.width - 20, (canvas4.width - 20) / tw * oc.height);
} else {
ctx4.fillText(txt, 10, canvas4.height - 100);
};
我曾尝试过文本对齐,比如:
ctx4.textAlign = 'center, canvas4.width / 2, canvas4.height - 100';
。