Привет.
Я хочу нарисовать текст в канвасе, и задать ему ширину равную размеру текста.
var
canvas = document.querySelector('canvas'),
ctx = canvas.getContext("2d"),
text = "Apples"
ctx.font = "small-caps 44px Arial";
canvas.width = ctx.measureText(text).width;
ctx.font = "small-caps 44px Arial";
ctx.textBaseline = 'middle';
ctx.fillText(text, 0, canvas.height / 2);
Шрифт приходится задавать два раза, ибо если убрать до установки ширины, то, measureText будет высчитываться по дефолтному шрифту. Если убрать после, то сам текст будет рисоваться с дефолтным шрифтом. Пробовала сохранять контекст до установки ширины и восстанавливать после, но безрезультатно.
Что я делаю не так?