Мне нужно следующее:
У меня есть определенная высота и ширина, в которой нужно разместить текст, и сделать это нужно так, чтобы текст занимал все данное пространство.
Например:
ширина и высота по 500, дана такая строка: АааАаА
мне надо получить размер шрифта такой, чтобы была занята вся ширина текстом.
вот такое говнецо у меня получилось:
function fitSizeFont(canvas, ctx, text)
{
console.log("\n");
let width = canvas.width * 0.8;
let height = canvas.height * 0.5;
console.log('ШИРИНА КАРТИНКИ ', width);
console.log('ВЫСОТА КАРТИНКИ', height);
console.log("\n");
let fontSize = Math.round(canvas.height * 0.05);
console.log('Размер шрифта ДО ', fontSize);
ctx.font = `${fontSize}px "${fontFamily}"`
let textWidth = ctx.measureText(text).width;
console.log('Ширина текста относительно размера шрифта ДО ', textWidth);
let countWrap = textWidth / width;
console.log('Количество текущих переносов строк ', countWrap);
let heightWrap = countWrap * fontSize;
console.log('Высота обертки ', heightWrap);
let ratio = height / heightWrap;
console.log('Высота картинки / Высота обертки ', ratio);
fontSize = Math.round(fontSize * ratio);
console.log('Размер шрифта ПОСЛЕ ', fontSize);
textWidth = ctx.measureText(text).width;
console.log('Ширина текста относительно размера шрифта ПОСЛЕ ', textWidth);
ctx.font = `${fontSize}px "${fontFamily}"`;
console.log("\n");
return fontSize;
}